gpt4 book ai didi

android - 如何以编程方式更改android中的铃声?

转载 作者:IT老高 更新时间:2023-10-28 23:07:15 24 4
gpt4 key购买 nike

我正在尝试编写一个应用程序,该应用程序(除其他外)将根据用户的位置更改用户的铃声。

但是,我在应用程序中设置手机铃声时遇到了困难。我已经能够显示手机铃声列表,并且一直在使用以下代码尝试设置铃声:

RingtoneManager.setActualDefaultRingtoneUri(applicationContext, 
RingtoneManager.TYPE_RINGTONE,
MediaStore.Audio.Media.getContentUriForPath(settings.getRingtoneURI()));

Settings.System.putString(c.getContentResolver(), Settings.System.RINGTONE,
settings.getRingtoneURI());

其中 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;
}
}

关于android - 如何以编程方式更改android中的铃声?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com