Android的东西(树莓派3)BluetoothAdapter.startLEScan(..)
问题描述:
我试图做的事:Android的东西(树莓派3)BluetoothAdapter.startLEScan(..)
BluetoothAdapter.getDefaultAdapter().startLeScan()
我已经添加了所有必需的权限(我认为):
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
请注意,Android的东西不支持运行时权限,无论它是基于Android 7.0
0123运行什么我得到的日志:java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
按文档,它应该能够开始有所有的权限扫描,但由于某些原因,它不希望。
我对树莓派采用Android事情的
答
你需要重启设备的应用程序已经开始获得访问权限后
由应用程序请求危险未授予权限直到下一个设备重启。这包括现有应用中的新应用安装和新元素。
https://developer.android.com/things/preview/releases.html
的另一种方式,迫使被赋予的权限,是与adb
和-g
标志启动您的应用程序(这将是默认AndroidStudio的未来版本)
./gradlew assembleDebug
adb install -g app/build/outputs/apk/app-debug.apk
+1
完全解决我的问题! –
您是否在请求权限后重新启动设备?或者用adb和'-g'标志启动应用程序? – Blundell
@Blundell,有多种方式从命令行启动应用程序,所以我不确定你正在谈论哪个命令。你能展示一个axample吗? –