如何以编程方式打开设备基座设置?

时间:2013-03-08 07:13:12

标签: android settings dock

我必须通过代码打开设备底座设置。我搜索但没有得到适当的解决方案。在三星Galaxy s-3中,它通过设置 - >附件。我尝试了以下代码,但没有工作

startActivityForResult(new Intent(Settings.System.getString(getContentResolver(), DOCK_SETTING)), 0);

enter image description here enter image description here

2 个答案:

答案 0 :(得分:4)

如果我错了,请纠正我,但我相信这不起作用的原因(以及为什么你无法在Android Settings中找到合适的活动动作),因为附件似乎由三星为其Galaxy设备提供。因此,您将无法在标准Android SDK中找到它(但是?)。

我目前正在尝试找出解决方法,因此如果找到解决方案,我会编辑此帖子。

编辑:看起来JoxTraex找到了一种方法来编辑设置:

Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);

此外,如果您需要在用户停靠设备时修改这些设置,则应创建BroadcastReceiver以收听ACTION_DOCK_EVENT广播。

答案 1 :(得分:1)

我能够通过查看设置并以编程方式配置设置来实现此目的:

android.provider.Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);

您需要获得许可:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

上面的代码将写入启用samsung s3上的扩音设置的设置。 然而; 而不是仅仅写它,你应该告诉用户该设置已被禁用,你需要启用它,并允许用户确认他们想通过对话框启用它。

另一方面,我认为不可能直接进入settings-&gt;附件屏幕,因为它是三星添加的自定义设置。此操作在Android SDK中提供,因此需要一段时间才能获得实际操作或即使它存在。

如果你想确认它只是查询它:

String where = "name = 'dock_sounds_enabled'";
Cursor c = getContentResolver().query(android.provider.Settings.System.CONTENT_URI, null, where, null, null);

更新

如何处理对话框配置停靠设置的响应的步骤:

  • 抓取设置..如果为0,则打开对话框启用它,否则继续处理

  • 对话框启动后,用户确认要启用它:

  • 确认:将1放入停靠栏声音,然后关闭对话框

  • 拒绝:请勿设置停靠栏设置,然后关闭对话框