Skip to content

Commit a07bd7c

Browse files
committed
Enable or disable rs based on permission
1 parent 327d8d6 commit a07bd7c

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ private void startSDLService() {
4343
}
4444

4545
private boolean checkPermission() {
46-
int result = ContextCompat.checkSelfPermission(getApplicationContext(), BLUETOOTH_CONNECT);
47-
int result1 = ContextCompat.checkSelfPermission(getApplicationContext(), BLUETOOTH_SCAN);
46+
int btConnectPermission = ContextCompat.checkSelfPermission(getApplicationContext(), BLUETOOTH_CONNECT);
47+
int btScanPermission = ContextCompat.checkSelfPermission(getApplicationContext(), BLUETOOTH_SCAN);
4848

49-
return result == PackageManager.PERMISSION_GRANTED && result1 == PackageManager.PERMISSION_GRANTED;
49+
return btConnectPermission == PackageManager.PERMISSION_GRANTED && btScanPermission == PackageManager.PERMISSION_GRANTED;
5050
}
5151

5252
private void requestPermission() {

android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@
4141
import android.content.ComponentName;
4242
import android.content.Context;
4343
import android.content.Intent;
44+
import android.content.pm.PackageManager;
4445
import android.hardware.usb.UsbManager;
4546
import android.os.Build;
4647
import android.os.Looper;
4748
import android.os.Parcelable;
4849
import android.util.AndroidRuntimeException;
4950

5051
import androidx.annotation.CallSuper;
52+
import androidx.core.content.ContextCompat;
5153

5254
import com.smartdevicelink.proxy.rpc.VehicleType;
5355
import com.smartdevicelink.transport.RouterServiceValidator.TrustedListCallback;
@@ -66,6 +68,8 @@
6668
import java.util.Vector;
6769
import java.util.concurrent.ConcurrentLinkedQueue;
6870

71+
import static android.Manifest.permission.BLUETOOTH_CONNECT;
72+
import static android.Manifest.permission.BLUETOOTH_SCAN;
6973
import static com.smartdevicelink.transport.TransportConstants.FOREGROUND_EXTRA;
7074

7175
public abstract class SdlBroadcastReceiver extends BroadcastReceiver {
@@ -126,6 +130,24 @@ public void onReceive(Context context, Intent intent) {
126130
intent.setAction(null);
127131
onSdlEnabled(context, intent);
128132
return;
133+
} else {
134+
//Should Be BT?
135+
136+
//Check BT Permissions
137+
int btConnectPermission = ContextCompat.checkSelfPermission(context, BLUETOOTH_CONNECT);
138+
int btScanPermission = ContextCompat.checkSelfPermission(context, BLUETOOTH_SCAN);
139+
140+
//Get ComponentName
141+
PackageManager pm = context.getPackageManager();
142+
ComponentName componentName = intent.getParcelableExtra(TransportConstants.START_ROUTER_SERVICE_SDL_ENABLED_CMP_NAME);
143+
144+
if (btConnectPermission != PackageManager.PERMISSION_GRANTED || btScanPermission != PackageManager.PERMISSION_GRANTED) {
145+
//User has denied BT Permissions we need to disable this apps router service
146+
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
147+
} else {
148+
//User has enabled BT Permissions we need to enable this apps router service
149+
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
150+
}
129151
}
130152

131153
if (intent.hasExtra(BluetoothDevice.EXTRA_DEVICE)) { //Grab the bluetooth device if available

0 commit comments

Comments
 (0)