微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未通过编程方式在Android 7牛轧糖中将mp3歌曲设置为铃声

如何解决未通过编程方式在Android 7牛轧糖中将mp3歌曲设置为铃声

当我在Android Pie上运行我的应用程序时,它工作正常,是指我设置铃声和警报,通知代码运行正常,但是当我在Android 7(牛轧糖)上运行此应用程序时,则设置了警报和通知,但铃声不是。当我单击“设置铃声”时,举杯消息成功显示该铃声设置,但是当我在手机上检查该铃声时,它仍使用以前的铃声。

设置的铃声代码

 private void setringtone() {
    AssetFileDescriptor openAssetFileDescriptor;
    ((AudioManager) getSystemService(AUdio_SERVICE)).setRingerMode(2);
    File file = new File(Environment.getExternalStorageDirectory() + "",this.fNmae);
    if (!file.getParentFile().exists()) {
        file.getParentFile().mkdirs();
    }
    if (!file.exists()) {
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printstacktrace();
        }
    }
  Uri parse = Uri.parse(this.fPAth);

    ContentResolver contentResolver = getContentResolver();
    try {
        openAssetFileDescriptor = contentResolver.openAssetFileDescriptor(parse,"r");
    } catch (FileNotFoundException e2) {
        openAssetFileDescriptor = null;
    }

    try {
        byte[] bArr = new byte[1024];
        FileInputStream createInputStream = openAssetFileDescriptor.createInputStream();
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        for (int read = createInputStream.read(bArr); read != -1; read =     createInputStream.read(bArr)) {
            fileOutputStream.write(bArr,read);
        }
        fileOutputStream.close();
    } catch (IOException e3) {
        e3.printstacktrace();
    }

    ContentValues contentValues = new ContentValues();
    contentValues.put("_data",file.getAbsolutePath());
    contentValues.put("title","nkDroid ringtone");
    contentValues.put("mime_type","audio/mp3");
    contentValues.put("_size",Long.valueOf(file.length()));
    contentValues.put("artist",Integer.valueOf(R.string.app_name));
    contentValues.put("is_ringtone",Boolean.valueOf(true));
    contentValues.put("is_notification",Boolean.valueOf(false));
    contentValues.put("is_alarm",Boolean.valueOf(false));
    contentValues.put("is_music",Boolean.valueOf(false));

    try {
        ringtoneManager.setActualDefaultringtoneUri(MainActivity.this,ringtoneManager.TYPE_ringtone,parse);
        Toast.makeText(this,new StringBuilder().append("ringtone set successfully"),Toast.LENGTH_LONG).show();
    } catch (Throwable th) {
        Toast.makeText(this,new StringBuilder().append("ringtone feature is not working"),Toast.LENGTH_LONG).show();
    }
}

警报代码

private void setAlarm() {

    AssetFileDescriptor openAssetFileDescriptor;
    ((AudioManager) getSystemService(AUdio_SERVICE)).setRingerMode(2);
    File file = new File(Environment.getExternalStorageDirectory() + "",this.fNmae);
    if (!file.getParentFile().exists()) {
        file.getParentFile().mkdirs();
    }
    if (!file.exists()) {
        try {
            file.createNewFile();
        } catch (IOException e) {
            e.printstacktrace();
        }
    }
    Uri parse = Uri.parse(this.fPAth);
    ContentResolver contentResolver = getContentResolver();
    try {
        openAssetFileDescriptor = contentResolver.openAssetFileDescriptor(parse,"r");
    } catch (FileNotFoundException e2) {
        openAssetFileDescriptor = null;
    }
    try {
        byte[] bArr = new byte[1024];
        FileInputStream createInputStream = openAssetFileDescriptor.createInputStream();
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        for (int read = createInputStream.read(bArr); read != -1; read = createInputStream.read(bArr)) {
            fileOutputStream.write(bArr,read);
        }
        fileOutputStream.close();
    } catch (IOException e3) {
        e3.printstacktrace();
    }
    ContentValues contentValues = new ContentValues();
    contentValues.put("_data",Boolean.valueOf(false));
    contentValues.put("is_notification",Boolean.valueOf(true));
    contentValues.put("is_music",Boolean.valueOf(false));
    try {
        Toast.makeText(this,new StringBuilder().append("Alarm set successfully"),Toast.LENGTH_LONG).show();
        //  ringtoneManager.setActualDefaultringtoneUri(getBaseContext(),contentResolver.insert(MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()),contentValues));

        ringtoneManager.setActualDefaultringtoneUri(getBaseContext(),ringtoneManager.TYPE_ALARM,parse);
        Settings.System.putString(contentResolver,Settings.System.ALARM_ALERT,parse.toString());
    } catch (Throwable th) {
        Toast.makeText(this,new StringBuilder().append("Alarm feature is not working"),Toast.LENGTH_LONG).show();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。