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

允许用户从android应用程序中选择系统报警音,android,alarm,audio,Android,Alarm,Audio,下面是我的onClick()方法 这是我的onActivityResult()方法- 我面临的问题是uri变量总是空的,所以控件不在if语句中。 我到处都在寻找同样的方法。请帮助我,因为我是android应用程序开发新手。不要使用启动铃声选择器的意图来检索输出Uri,而是使用从中传入的。换句话说,将意图更改为数据: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {

下面是我的onClick()方法

这是我的onActivityResult()方法-

我面临的问题是uri变量总是空的,所以控件不在if语句中。
我到处都在寻找同样的方法。请帮助我,因为我是android应用程序开发新手。

不要使用启动铃声选择器的
意图来检索输出
Uri
,而是使用从中传入的。换句话说,将
意图
更改为
数据

@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
,这实际上没有任何作用。额外的用于在铃声选择器打开时选择特定铃声。如果要检查默认报警声,请传入:

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));
当您选择默认报警声音时,确保播放默认报警声音。您应添加额外的:


不要使用用于启动铃声选择器以检索输出的
Intent
,而是使用从中传入的。换句话说,将
意图
更改为
数据

@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
,这实际上没有任何作用。额外的用于在铃声选择器打开时选择特定铃声。如果要检查默认报警声,请传入:

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));
当您选择默认报警声音时,确保播放默认报警声音。您应添加额外的:


但是setActualDefaultRingtoneUri没有更改系统报警音,但是setActualDefaultRingtoneUri没有更改系统报警音