Add BLUETOOTH_PRIVILEGED permission
Required for reading bluetooth tethering state since May, 2020 security patch. Related: https://android-review.googlesource.com/c/platform/packages/apps/Bluetooth/+/1253150
This commit is contained in:
@@ -26,6 +26,8 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"
|
||||||
|
tools:ignore="ProtectedPermissions"/>
|
||||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
|
||||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import android.content.Intent
|
|||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import androidx.core.os.BuildCompat
|
||||||
import be.mygod.vpnhotspot.App.Companion.app
|
import be.mygod.vpnhotspot.App.Companion.app
|
||||||
import be.mygod.vpnhotspot.net.TetheringManager
|
import be.mygod.vpnhotspot.net.TetheringManager
|
||||||
import be.mygod.vpnhotspot.util.broadcastReceiver
|
import be.mygod.vpnhotspot.util.broadcastReceiver
|
||||||
@@ -88,8 +89,12 @@ class BluetoothTethering(context: Context, val stateListener: (Int) -> Unit) :
|
|||||||
*/
|
*/
|
||||||
val active: Boolean? get() {
|
val active: Boolean? get() {
|
||||||
val pan = pan ?: return null
|
val pan = pan ?: return null
|
||||||
return BluetoothAdapter.getDefaultAdapter()?.state == BluetoothAdapter.STATE_ON &&
|
return BluetoothAdapter.getDefaultAdapter()?.state == BluetoothAdapter.STATE_ON && try {
|
||||||
isTetheringOn.invoke(pan) as Boolean
|
isTetheringOn.invoke(pan) as Boolean
|
||||||
|
} catch (e: InvocationTargetException) {
|
||||||
|
if (e.cause is SecurityException && BuildCompat.isAtLeastR()) Timber.d(e) else Timber.w(e)
|
||||||
|
return null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val receiver = broadcastReceiver { _, intent -> stateListener(intent.bluetoothState) }
|
private val receiver = broadcastReceiver { _, intent -> stateListener(intent.bluetoothState) }
|
||||||
|
|||||||
Reference in New Issue
Block a user