Android 铃声意图:检测取消按钮或无选择

Android 铃声意图:检测取消按钮或无选择,android,Android,我打开铃声以选择声音 我可以在列表中选择“无” 我可以用“取消”按钮取消选择 如何检测用户选择了“取消”按钮(保留以前的选择)还是“无” 因为在onActivityResult中,所有参数都是相同的 意图创建: Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE

我打开铃声以选择声音

  • 我可以在列表中选择“无”

  • 我可以用“取消”按钮取消选择

如何检测用户选择了“取消”按钮(保留以前的选择)还是“无”

因为在onActivityResult中,所有参数都是相同的

意图创建:

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, R.string.pref_notification_sound_defaut);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(myUri));
this.startActivityForResult(intent,5);
和onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // with Cancel button or None choice :
    // requestCode == 0
    // resultCode == 5
    // data == null
}

您不需要,取消按钮将自动恢复到以前选择的声音


仅当
resultCode
Activity时,才应更改该值。结果\u正常

谢谢。但是如果之前有选择,没有,我必须保存用户不想要声音。如果他取消,我必须保留前一个。。。但是我用Cancel按钮和None choice按钮没有收到任何数据:/我不确定我完全明白你的意思,当用户选择None
onActovityResult
时,仍然会调用,但是
data
中的uri将为空,你不需要听Cancel按钮。我相信您将uri字符串存储在首选项中?是的,我不需要听取消按钮:这就是问题所在,如何防止这种情况?使用None和Cancel,它将转到onActivityResult方法。。。(请求代码、结果代码和数据相同)。我想区分“我不想要声音”(无)和“让前面的选择”(取消按钮)取消的结果代码为0。然而,对于none(或任何其他成功的选择)是-1,至少可以保证对于Cancel,resultCode永远不会是-1