मैं निम्नलिखित दुर्घटना हो रही है, लेकिन यह केवल कुछ Samsung उपकरणों पर होता है (सभी नहीं, हम विकसित सैमसंग उपकरणों पर/परीक्षण)java.lang.SecurityException: BLUETOOTH अनुमति क्रैश। (सैमसंग उपकरणों केवल)
क्रैश लॉग:
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)
यहाँ मेरा 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>
मुझे वास्तव में कोई जानकारी नहीं है कि यह केवल कुछ उपकरणों पर क्यों होता है; मेरा प्रारंभिक अनुमान है कि इसमें सैमसंग कोनोक्स के साथ कुछ करना है, और (कुछ) उपयोगकर्ता जो क्रैश हो रहे हैं वे ब्लूटूथ को अक्षम करने के लिए फोन नीति वाले KNOX उपयोगकर्ता हैं।
क्या कोई और इसमें भाग लेता है? या क्या किसी को पता है कि यह क्या हो सकता है?
भले ही आपके पास अपने मैनिफेस्ट में उपयोग-अनुमति हो, कोई उपयोगकर्ता किसी दिए गए एप्लिकेशन के लिए कोई अनुमति अक्षम कर सकता है, हो सकता है कि यह मामला हो? वास्तव में एक जंगली अनुमान है। –
एक और अनुमान: android.permission.BLUETOOTH_PRIVILEGED विशेषाधिकार जोड़ना। शायद यह उत्तर (या यहां तक कि अगले एक) http://stackoverflow.com/a/18322851/4618338 भी मदद कर सकता है। –
@TrynkiewiczMariusz यह मेरा पहला अनुमान भी था। मैं एक KNOX सैंडबॉक्स मोड में ऐप इंस्टॉल करने और वहां ब्लूटूथ को अक्षम करने जैसे कुछ अनुमान लगा रहा था? मुझे यकीन नहीं है कि – eric