我必须通过代码打开设备底座设置。我搜索但没有得到正确的解决方案。在三星 Galaxy s-3 中,它通过设置-> 附件。我尝试了以下代码但没有用
startActivityForResult(new Intent(Settings.System.getString(getContentResolver(), DOCK_SETTING)), 0);
如果我错了,请纠正我,但我相信这不起作用的原因,(以及为什么您无法在 Android设置中找到适当的活动操作),是因为附件似乎是由三星为其提供的银河设备。因此,您将无法在标准的 Android SDK 中找到它(还没有?)。
我目前正在尝试找出解决方法,因此如果找到解决方案,我将编辑此帖子。
编辑:看起来 JoxTraex 找到了一种方法让您通过以下方式编辑设置:
Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);
此外,如果您需要在用户对接设备时修改这些设置,您应该创建一个BroadcastReceiver来监听ACTION_DOCK_EVENT广播。
我能够通过查看设置并以编程方式配置设置来实现这一点:
android.provider.Settings.System.putInt(getContentResolver(), "dock_sounds_enabled", 1);
您需要以下权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
上面的代码将写入在三星 s3 上启用基座声音设置的设置。然而; 而不是仅仅编写它,您应该告诉用户该设置已禁用并且您需要启用它并允许用户确认他们想要通过对话框启用它。
另一方面,我认为不可能直接进入设置->附件屏幕,因为它是三星添加的自定义设置。Android SDK 中没有提供此操作,因此需要一段时间才能得出实际操作是什么,或者即使它存在。
如果您想确认它,只需查询它:
String where = "name = 'dock_sounds_enabled'";
Cursor c = getContentResolver().query(android.provider.Settings.System.CONTENT_URI, null, where, null, null);
如何处理对话框响应以配置停靠设置的步骤:
抓住设置..如果它是0,打开对话框来启用它,否则继续你的处理
一旦对话框启动并且用户确认他们想要启用它:
确认:将 1 放入 Dock 声音中,然后关闭对话框