前往设置屏幕。

25

我想从我的应用程序打开“设置”->“声音和显示”->“电话铃声”屏幕。我该如何做到这一点?

2个回答

48

根据您的需求,有几种替代方案可以从您的应用程序中打开“铃声”设置屏幕。

如果您想打开实际的首选项屏幕,通常可以通过系统设置来访问 - 让用户通过您的应用程序修改手机的通用铃声设置 - 您可以使用 android.provider.Settings 类中的 ACTION_SOUND_SETTINGS 常量创建一个新的 Intent 来启动声音设置活动。

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0);

如果您希望在您的应用程序中选择自定义铃声,您需要在您的preferences.xml定义文件中添加一个RingtonePreference,如下所示:

<RingtonePreference
  android:key="alerts_ringtone"
  android:title="Select ringtone" 
  android:showDefault="true"
  android:showSilent="true"
  android:ringtoneType=""
/> 

使用 alerts_ringtone 作为键,您可以获取应用程序默认的 SharedPreferences 中所选首选项的URI。

后一种技术使用 PreferenceActivity 类来托管首选项选项。我在这里不会详细描述,因为Android文档有一个好的介绍和一些示例代码。


谢谢。我想打开“首选项”屏幕。那么执行意图语句会让用户设置铃声,还是只要用户选择了铃声,它就会回到应用程序,并且应用程序必须设置它? - lostInTransit
1
执行 Intent 语句将允许用户设置铃声-您的应用程序不必单独处理任何内容。 - Reto Meier
1
根据第二个答案提示,第一个代码片段有一个错误,Intent构造函数的第一个参数后需要加上一个闭合括号。我只想进行编辑,但需要超过6个字符 :) - Brizee

7

这是一个问题的替代方案。我也在做同样的任务,但上面的代码对我不起作用。我已经更改了代码为

startActivityForResult(new Intent(android.provider.Settings.ACTION_SOUND_SETTINGS), 0);

现在它可以正常工作了。


这对Nougat无效,请帮忙。应用程序未打开。 - developer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接