Android 事物 (Raspberry Pi 3) BluetoothAdapter.startLEScan(..)
Android things (Raspberry Pi 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
以及我在日志中得到的内容:
java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
根据文档,它应该能够在具有所有权限的情况下开始扫描,但由于某种原因它不想这样做。
我在 Raspberry Pi 3
上使用 Android 的 0.4.0-devpreview
应用启动后需要重启设备才能获取权限
Dangerous permissions requested by apps are not granted until the next device reboot. This includes new app installs and new elements in existing apps.
https://developer.android.com/things/preview/releases.html
另一种强制授予权限的方法是使用 adb
和 -g
标志启动您的应用(这将是 AndroidStudio 未来版本的默认设置)
./gradlew assembleDebug
adb install -g app/build/outputs/apk/app-debug.apk
我正在尝试做:
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
以及我在日志中得到的内容:
java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
根据文档,它应该能够在具有所有权限的情况下开始扫描,但由于某种原因它不想这样做。
我在 Raspberry Pi 3
0.4.0-devpreview
应用启动后需要重启设备才能获取权限
Dangerous permissions requested by apps are not granted until the next device reboot. This includes new app installs and new elements in existing apps.
https://developer.android.com/things/preview/releases.html
另一种强制授予权限的方法是使用 adb
和 -g
标志启动您的应用(这将是 AndroidStudio 未来版本的默认设置)
./gradlew assembleDebug
adb install -g app/build/outputs/apk/app-debug.apk