Android SecurityException: Need BLUETOOTH ADMIN permissicacheNameAndAddresson: Neither user 10123 nor current process has android.permission.BLUETOOTH_ADMIN


If you are getting the below error in the LogCat console when you run the Android application and it Unfortunately stops, its because you are trying to use Bluetooth that requires BLUETOOTH_ADMIN permission,

Error stack trace:

Process: com.code2care.testing, PID: 12310
java.lang.RuntimeException: 
Unable to start activity ComponentInfo
{com.code2care.testing/com.code2care.testing.MainActivity}: 
java.lang.SecurityException: 
Need BLUETOOTH ADMIN permissicacheNameAndAddresson: 
Neither user 10123 nor current process has android.permission.BLUETOOTH_ADMIN.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2560)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2626)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1475)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5740)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766)

Caused by: java.lang.SecurityException: 
Need BLUETOOTH ADMIN permissicacheNameAndAddresson: 
Neither user 10123 nor current process has android.permission.BLUETOOTH_ADMIN.

        at android.os.Parcel.readException(Parcel.java:1599)
        at android.os.Parcel.readException(Parcel.java:1552)
        at android.bluetooth.IBluetoothManager$Stub$Proxy.disable(IBluetoothManager.java:337)
        at android.bluetooth.BluetoothAdapter.disable(BluetoothAdapter.java:1026)
        at com.code2care.testing.MainActivity.toggleBluetooth(MainActivity.java:33)
        at com.code2care.testing.MainActivity.onCreate(MainActivity.java:17)
        at android.app.Activity.performCreate(Activity.java:6543)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2513)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2626) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766) 

Solution

Make sure you have added the below permissions in the AndroidManifest.xml file,

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

Android Admin Bluetooth error