我正在尝试编写一个应用程序(除其他外)将根据用户的位置更改用户的铃声.
但是,我在我的应用程序中设置手机的铃声时遇到了困难.我已经能够显示手机铃声的列表,并且已经使用以下代码尝试设置铃声:
RingtoneManager.setActualDefaultRingtoneUri(applicationContext,
RingtoneManager.TYPE_RINGTONE,
MediaStore.Audio.Media.getContentUriForPath(settings.getRingtoneURI()));
Settings.System.putString(c.getContentResolver(), Settings.System.RINGTONE,
settings.getRingtoneURI());
Run Code Online (Sandbox Code Playgroud)
其中settings.getRingtoneURI()返回包含所需铃声URI的字符串.
当我运行它时,我没有收到任何错误,但铃声没有改变.
有什么建议?
下面的代码选择来自手机的任何随机铃声作为来电。
RingtoneManager rm = new RingtoneManager(context);
Random random = new Random();
int i = rm.getRingtonePosition(RingtoneManager
.getActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE));
MyApplication.APPLICATION_SHARED_PREFERENCE.edit()
.putInt(MyConstants.PHONE_RINGTONE_NUMBER, i).commit();
int chanegToneNumber;
Cursor cursor = rm.getCursor();
while (true) {
chanegToneNumber = random.nextInt(cursor.getCount());
if (chanegToneNumber != i)
break;
}
Log.d(TAG, "Tone: " + i);
Log.d(TAG, "Tone total: " + cursor.getCount());
while (cursor.moveToNext()) {
if (i == cursor.getInt(cursor
.getColumnIndex(MediaStore.MediaColumns._ID))) {
RingtoneManager.setActualDefaultRingtoneUri(context,
RingtoneManager.TYPE_RINGTONE,
rm.getRingtoneUri(chanegToneNumber));
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9265 次 |
| 最近记录: |