San*_*hal 5 android ringtone dual-sim ringtonemanager
我正在尝试使用以下代码设置自定义铃声:
private void registerRingtone(String ringtoneFilePath) {
// Create File object for the specified ring tone path
File ringtoneFile = new File(ringtoneFilePath);
// Insert the ringtone to the content provider
ContentValues value = new ContentValues();
value.put(MediaStore.MediaColumns.DATA, ringtoneFile.getAbsolutePath());
value.put(MediaStore.MediaColumns.TITLE, ringtoneFile.getName());
value.put(MediaStore.MediaColumns.SIZE, ringtoneFile.length());
value.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
value.put(MediaStore.Audio.Media.ARTIST, "myapp");
value.put(MediaStore.Audio.Media.IS_ALARM, false);
value.put(MediaStore.Audio.Media.IS_MUSIC, false);
value.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
value.put(MediaStore.Audio.Media.IS_RINGTONE, true);
ContentResolver cr = context.getContentResolver();
Uri ringtoneUri = MediaStore.Audio.Media.getContentUriForPath(ringtoneFile.getAbsolutePath());
System.out.println("Path to ringtone= " + ringtoneUri);
Uri addedUri = cr.insert(ringtoneUri, value);
System.out.println("addedUri= " + addedUri);
}
public static void setDefaultRingtone(Context context, String ringtoneFilePath) {
Uri ringtoneUri = Uri.parse(ringtoneFilePath);
// Set default ring tone
RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, ringtoneUri);
}
Run Code Online (Sandbox Code Playgroud)
我正在调用 registerRingtone 方法并传递我的铃声路径(例如“/storage/emulated/0/test/ringtones/14546548681.mp3”)。
现在我面临着奇怪的问题。当我尝试为双 SIM 卡手机设置铃声时,代码有时有效(设置铃声),有时无效(不设置铃声)。例如,它适用于双 SIM 卡 MotoG,不适用于几乎所有其他双 SIM 卡手机(即 SONY Experia C、HTC Desire、Lenovo K4 Note)
我的结论是,如果手机可以为两个 SIM 卡设置不同的铃声,即 SIM 1 - Ringtone1 和 SIM -2 - Ringtone 2,那么它在设置铃声时会失败,并且还会删除我之前的选择。
如何为允许选择 SIM 卡特定铃声的设备设置自定义铃声?
有人可以帮忙吗?
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |