android.provider.Settings.ACTION_BLUETOOTH_SETTINGS 在三星上崩溃

Posted

技术标签:

【中文标题】android.provider.Settings.ACTION_BLUETOOTH_SETTINGS 在三星上崩溃【英文标题】:android.provider.Settings.ACTION_BLUETOOTH_SETTINGS crashes on Samsung 【发布时间】:2015-05-02 19:20:26 【问题描述】:

有人知道为什么

Intent pairIntent = new Intent(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
startActivityForResult(pairIntent, 0);

在所有三星设备上崩溃,但在模拟器、HTC、索尼、LG 等上运行良好。

已编辑-----------------------------------

原来三星在清单中也需要 BLUETOOTH_ADMIN

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

【问题讨论】:

你的意思是你得到一个ActivityNotFoundException 没有可调试的三星设备,但三星用户在启动此意图时报告“应用程序意外关闭”。 【参考方案1】:

如果您有一个正在生产的应用程序,您需要有一些东西 可以让您获取崩溃日志。这可能是您通过 Play 商店发货时获得的默认内容,也可能是 ACRA 等开源解决方案,或任意数量的服务提供商。

关于您的崩溃,无法保证此活动可用。引用the documentation:

在某些情况下,匹配的 Activity 可能不存在,因此请务必防范这种情况。

“保护”可以将您的 startActivity() 调用包装在异常处理程序中,以监视 ActivityNotFoundException

另外,请注意您使用startActivity(),而不是startActivityForResult(),与此Intent 操作。再次引用the documentation:

输出:没有。

这意味着没有结果,使用startActivityForResult()是浪费时间。

【讨论】:

好吧,这似乎是有道理的。它仍在开发中,但只有几个人在做我的 beta 测试。太好了,这些信息是通过 Play 商店发货的标准配置。 认为 Settings.ACTION_BLUETOOTH_SETTINGS 几乎是所有设备的标准配置。 @user3380200:屏幕可能是,但不要求任何设备制造商包含&lt;intent-filter&gt; 才能到达那里。当然,这只是您的应用程序可能在此处崩溃的原因之一——没有堆栈跟踪,没人能真正知道。 超级有帮助。谢谢!

以上是关于android.provider.Settings.ACTION_BLUETOOTH_SETTINGS 在三星上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Android的settings命令

如何在程序中设置 Android 的 IP,DNS 和网关

哪个意图应该打开数据使用屏幕(来自设置)

Settings5.1源码分析

B / w黑白设置。全局,设置。系统和设置。在Android中安全

无法在 Android 中以编程方式应用系统屏幕亮度