2017-05-30 67 views
0

我试图做的事: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事情的

+0

您是否在请求权限后重新启动设备?或者用adb和'-g'标志启动应用程序? – Blundell

+0

@Blundell,有多种方式从命令行启动应用程序,所以我不确定你正在谈论哪个命令。你能展示一个axample吗? –

回答

3

你需要重启设备的应用程序已经开始获得访问权限后

由应用程序请求

危险未授予权限直到下一个设备重启。这包括现有应用中的新应用安装和新元素。

https://developer.android.com/things/preview/releases.html

的另一种方式,迫使被赋予的权限,是与adb-g标志启动您的应用程序(这将是默认AndroidStudio的未来版本)

./gradlew assembleDebug 
adb install -g app/build/outputs/apk/app-debug.apk 
+1

完全解决我的问题! –