gpt4 book ai didi

android - 允许用户从 Android 应用程序中选择系统警报音

转载 作者:行者123 更新时间:2023-11-29 16:01:49 25 4
gpt4 key购买 nike

以下是我的 onClick() 方法

public void onClick(View v){
switch(v.getId()){
case R.id.btnAlarm:
intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select Tone");
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, (Uri) null);
this.startActivityForResult(intent, 5);
break;
}
}

这是我的 onActivityResult() 方法-

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == -1 && requestCode == 5) {
Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if(uri!=null){
RingtoneManager.setActualDefaultRingtoneUri(EmergencyContactsActivity.this, RingtoneManager.TYPE_ALARM, uri);
}
}
}

我面临的问题是 uri 变量始终为空,因此控件不会进入 if 语句。我到处搜索并找到了相同的方法。请帮助我,因为我是 Android 应用程序开发的新手。

最佳答案

不要使用用于启动铃声选择器的Intent 来检索输出Uri,而是使用从Activity.onActivityResult 传入的那个。 .换句话说,将 intent 更改为 data:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == -1 && requestCode == 5) {
final Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
if (uri != null) {
RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, uri);
}
}
}

另外,你不需要传入(Uri) null,这实际上并没有做任何事情。额外的 RingtoneManager.EXTRA_RINGTONE_EXISTING_URI用于在铃声选择器打开时选择特定的铃声。如果你想检查默认闹钟声音,你会传入:

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, System.DEFAULT_ALARM_ALERT_URI);

或者,如果您想检查默认警报声音的实际名称,您可以传入:

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM));

并确保在您选择默认警报声音时播放默认警报声音您应该添加额外的RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI :

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, System.DEFAULT_ALARM_ALERT_URI);

关于android - 允许用户从 Android 应用程序中选择系统警报音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868732/

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