- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序的 onCreate()
中,我调用了 BluetoothAdapter.getAddress()
。运行此应用程序的数百台设备中的一台会产生 java.lang.SecurityException
:
java.lang.RuntimeException: Unable to start activity ComponentInfo{xx.yyy.myapp/xx.yyy.myapp.RecActivity}: java.lang.SecurityException: Need BLUETOOTH ADMIN permission: Neither user 10095 nor current process has android.permission.BLUETOOTH_ADMIN. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.SecurityException: Need BLUETOOTH ADMIN permission: Neither user 10095 nor current process has android.permission.BLUETOOTH_ADMIN. at android.os.Parcel.readException(Parcel.java:1425) at android.os.Parcel.readException(Parcel.java:1379) at android.bluetooth.IBluetoothManager$Stub$Proxy.getAddress(IBluetoothManager.java:295) at android.bluetooth.BluetoothAdapter.getAddress(BluetoothAdapter.java:576) at xx.yyy.myapp.RecActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) ... 11 more
由于我无法在该设备上进行调试,所以我想请问以下解决方案是否可行,或者是否有更好的方法来处理该问题(这是小于 JELLY_BEAN_MR2 的分支)?
BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter();
try {
macAddress = ( bta != null ) ? bta.getAddress() : "";
} catch ( Exception e ) {
macAddress = "";
}
此外,我想知道该设备上的 Android 版本是否存在错误,因为在我看来 BluetoothAdapter.java 中的 getAddress()
不需要 android.permission.BLUETOOTH_ADMIN
?
或者使用此设备的用户是否有可能使用特定的 root 工具来锁定我的应用程序的蓝牙访问?这可能是异常的原因?
或者问题的原因可能是什么?
最佳答案
自 it's bad practice to use catch(Exception e)
, 使用
} catch(SecurityException e){
防止崩溃。
(现在作为答案而不是评论。)
关于android - 调用 BluetoothAdapter.getDefaultAdapter 时出现 SecurityException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31138606/
我开始开发一个通过蓝牙与 arduino 设备通信的应用程序。 我正在用 初始化 bt 适配器 BluetoothAdapter btAdapter = BluetoothAdapter.getDef
我在 android studio 0.4 中使用 BluetoothAdapter。项目 api minSdkVersion 11。 主要 Activity 如下: public class Mai
如何修复此代码中的弃用警告?或者,还有其他选择吗? val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
我有 3 个不同的带有 NFC 的设备。其中 2 个设备上的 NfcAdapter.getDefaultAdapter(this) 返回应有的结果,但在第三个设备上返回null。第三台设备上安装了一个
我正在尝试在模拟器 API 10 (Android 2.3. 3). 当我调用 NfcAdapter.getDefaultAdapter(this) 时,我得到 null。为什么会这样? 代码: pu
这是我的第一篇文章,所以如果我做了一些愚蠢的事情,请告诉我。这个问题可能看起来与其他帖子相似,但或多或少与我所看到的一切相反。 关于项目的事情: 我正在开发 android 4.0 - 4.4 应
在我的应用程序的 onCreate() 中,我调用了 BluetoothAdapter.getAddress()。运行此应用程序的数百台设备中的一台会产生 java.lang.SecurityExce
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { Log.i("Er
当我不在 Activity 中但在 TimerTask(在 Service 中创建)中尝试获取默认蓝牙适配器时,使用: BluetoothAdapter.getDefaultAdapter(); 我得
我有一个使用蓝牙并连接到设备的应用程序,找不到任何使用 BluetoothAdapter.getDefaultAdapter().startDiscovery() 的设备;它在发现之前运行良好。也试过
所以我有我想通过 zend 框架调用的原始 SQL select t.type, t.tid,t.tname,t.cid,t.cname, ls.* from ( select t.t
我的应用程序在后台和前台使用 NFC 读取。对于用户信息,我在我的 Activity 中使用 CountDownTimer(120 * 1000, 5 * 1000) 和方法 onTick(long
我正在 Qt Creator 5.4 中构建一个简单的 Android 应用程序,使用 JNI 在 C++ 中调用 Android 的蓝牙 API。我花了几个小时查看 JNI 教程,但我终其一生都无法
我是一名优秀的程序员,十分优秀!