声音提示

App设置自己的提示音乐

锁屏提示:

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
        KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("");
        keyguardLock.disableKeyguard();

方法一:

import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;

import com.iflytek.speech.SpeechSynthesizer;
import com.iflytek.speech.SpeechUtility;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class MainActivity extends Activity {

    private Button bt01;
    private Button bt04;
    private Ringtone rt;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            /*加载页面*/
        setContentView(R.layout.activity_main);

        init();
    }

    private void init() {
        bt04 = (Button)findViewById(R.id.le10bt04);
        bt04.setOnClickListener(onclick);
    }

    View.OnClickListener onclick = new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            MediaPlayer mediaPlayer = null;
            switch(v.getId()) {

                case R.id.le10bt04:
/**************************************播放音乐*********************************************/
                    MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.ringer);
                    try
                    {
                        mp.prepare();
                    } catch (IllegalStateException e)
                    {
                        e.printStackTrace();
                    } catch (IOException e)
                    {
                        e.printStackTrace();
                    }
                    //震动
                    Vibrator vibrator = (Vibrator)MainActivity.this.getSystemService(Context.VIBRATOR_SERVICE);

                    vibrator.vibrate(new long[]{300,500},0);
                    vibrator.vibrate(2500);
                    mp.start();

                    break;

            }
        }
    };

方法二:
private Ringtone rt;

InputStream inputStream = getResources().openRawResource(R.raw.ringer);
                    String sign = (String) getData(MainActivity.this, "aa", "");
                    String path = getPath() + "/" +getMD5()+ sign + "notice.mp3";
                    File file = new File(path);
                    if (!file.exists()) {
                        try {
                            file.createNewFile();
                            OutputStream os = new FileOutputStream(file);
                            int bytesRead = 0;
                            byte[] buffer = new byte[8192];
                            while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
                                os.write(buffer, 0, bytesRead);
                            }
                            os.close();
                            inputStream.close();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    try {
                        ContentValues values = new ContentValues();
                        values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
                        values.put(MediaStore.MediaColumns.TITLE, file.getName());
                        values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
                        values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
                        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
                        values.put(MediaStore.Audio.Media.IS_ALARM, false);
                        values.put(MediaStore.Audio.Media.IS_MUSIC, false);

                        Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
                        Uri newUri = MainActivity.this.getContentResolver().insert(uri, values);


                        RingtoneManager.setActualDefaultRingtoneUri(MainActivity.this, RingtoneManager.TYPE_RINGTONE, newUri);
                        // 播放铃声
                        rt= RingtoneManager.getRingtone(MainActivity.this, newUri);
                        rt.play();


                    } catch (Exception e) {
                        e.printStackTrace();
//            LogUtils.i("写入文件出错了");
                    }
private static final String FILE_NAME = "123";

    public static Object getData(Context context, String key, Object defValue) {
        String type = defValue.getClass().getSimpleName();
        SharedPreferences sharedPreferences = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
        // defValue为为默认值,如果当前获取不到数据就返回它
        if ("Integer".equals(type)) {
            return sharedPreferences.getInt(key, (Integer) defValue);
        } else if ("Boolean".equals(type)) {
            return sharedPreferences.getBoolean(key, (Boolean) defValue);
        } else if ("String".equals(type)) {
            return sharedPreferences.getString(key, (String) defValue);
        } else if ("Float".equals(type)) {
            return sharedPreferences.getFloat(key, (Float) defValue);
        } else if ("Long".equals(type)) {
            return sharedPreferences.getLong(key, (Long) defValue);
        }
        return null;
    }
    public static String getPath() {
        String state = Environment.getExternalStorageState();
        File sdcardDir = Environment.getExternalStorageDirectory();
        if (Environment.MEDIA_MOUNTED.equals(state))
            return sdcardDir.getPath();
        else
            return null;
    }
    /**
     * 访问网络时需要提交的加密
     */
    public static String getMD5() {
        SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyyMMddHHmm");
        String date = sDateFormat.format(new java.util.Date());
        String str = "zoeopvnm3sab" + date;
        String key = MD5.getMessageDigest(str.getBytes());
        return key;
    }

MD5

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5 {

    private MD5() {}

    // 全局数组
    private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

    public final static String getMessageDigest(byte[] buffer) {
        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        try {
            MessageDigest mdTemp = MessageDigest.getInstance("MD5");
            mdTemp.update(buffer);
            byte[] md = mdTemp.digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            return null;
        }
    }

    public static String GetMD5Code(String strObj) {
        String resultString = null;
        try {
            resultString = new String(strObj);
            MessageDigest md = MessageDigest.getInstance("MD5");
            // md.digest() 该函数返回值为存放哈希值结果的byte数组
            resultString = byteToString(md.digest(strObj.getBytes()));
        } catch (NoSuchAlgorithmException ex) {
            ex.printStackTrace();
        }
        return resultString;
    }

     // 转换字节数组为16进制字串
    private static String byteToString(byte[] bByte) {
        StringBuffer sBuffer = new StringBuffer();
        for (int i = 0; i < bByte.length; i++) {
            sBuffer.append(byteToArrayString(bByte[i]));
        }
        return sBuffer.toString();
    }

 // 返回形式为数字跟字符串
    private static String byteToArrayString(byte bByte) {
        int iRet = bByte;
        // System.out.println("iRet="+iRet);
        if (iRet < 0) {
            iRet += 256;
        }
        int iD1 = iRet / 16;
        int iD2 = iRet % 16;
        return strDigits[iD1] + strDigits[iD2];
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值