che sto ricevendo l'incidente seguente, ma questo si verifica solo su alcuni dispositivi Samsung (non tutti, si sviluppano/test su dispositivi Samsung) di registrojava.lang.SecurityException: BLUETOOTH arresto autorizzazione. (dispositivi Samsung solo)
Crash:
java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10025 nor current process has android.permission.BLUETOOTH.
at android.os.Parcel.readException(Parcel.java:1540)
at android.os.Parcel.readException(Parcel.java:1493)
at android.bluetooth.IBluetooth$Stub$Proxy.isEnabled(IBluetooth.java:1156)
at android.bluetooth.BluetoothAdapter.isEnabled(BluetoothAdapter.java:697)
at org.altbeacon.beacon.service.scanner.CycledLeScanner.finishScanCycle(CycledLeScanner.java:245)
at org.altbeacon.beacon.service.scanner.CycledLeScanner.scheduleScanCycleStop(CycledLeScanner.java:234)
at org.altbeacon.beacon.service.scanner.CycledLeScanner$1.run(CycledLeScanner.java:230)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5972)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Ecco il mio AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.myapp" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<!--
The following two permissions are not required to use Google Maps Android API v2,
but are recommended. We also require them for location updates.
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />
<application
android:name=".myapp"
android:allowBackup="true"
android:icon="@drawable/appicon"
android:label="@string/app_name"
android:logo="@drawable/action_bar_pinwheel_back"
android:theme="@style/AppTheme" >
<activity
android:name=".activities.VerifyPinActivity"
android:label="@string/title_activity_verify_pin"
android:screenOrientation="portrait"
android:theme="@style/NoActionBarDark"
android:windowSoftInputMode="stateVisible|adjustPan" >
</activity>
...(more activities here removed)
</application>
</manifest>
Non ho davvero idea del motivo per cui si verifica solo su alcuni dispositivi; la mia ipotesi iniziale è che abbia qualcosa a che fare con Samsung KNOX, ei (pochi) utenti che si bloccano sono utenti KNOX con una politica del telefono per disabilitare il bluetooth.
Qualcun altro ha incontrato questo? O qualcuno ha qualche idea di cosa potrebbe essere?
Anche se si dispone di permessi di utilizzo nel file manifest, un utente può disabilitare qualsiasi autorizzazione per una determinata applicazione, forse questo è il caso? Un'ipotesi davvero selvaggia. –
Un'altra ipotesi: aggiunta del privilegio android.permission.BLUETOOTH_PRIVILEGED. Forse questa risposta (o anche la prossima) http://stackoverflow.com/a/18322851/4618338 potrebbe aiutare pure. –
@TrynkiewiczMariusz Questa è stata la mia prima ipotesi. Stavo indovinando qualcosa come installare l'app in una modalità sandbox KNOX e disabilitare Bluetooth all'interno? Non sono sicuro di come funziona KNOX anche se – eric