Commit 43df33ca by Rene Floor

Added ble permission Android

parent 9d12bb54
...@@ -32,6 +32,7 @@ final class PermissionConstants { ...@@ -32,6 +32,7 @@ final class PermissionConstants {
static final int PERMISSION_GROUP_ACCESS_MEDIA_LOCATION = 18; static final int PERMISSION_GROUP_ACCESS_MEDIA_LOCATION = 18;
static final int PERMISSION_GROUP_ACTIVITY_RECOGNITION = 19; static final int PERMISSION_GROUP_ACTIVITY_RECOGNITION = 19;
static final int PERMISSION_GROUP_UNKNOWN = 20; static final int PERMISSION_GROUP_UNKNOWN = 20;
static final int PERMISSION_GROUP_BLUETOOTH = 21;
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@IntDef({ @IntDef({
...@@ -55,6 +56,7 @@ final class PermissionConstants { ...@@ -55,6 +56,7 @@ final class PermissionConstants {
PERMISSION_GROUP_ACCESS_MEDIA_LOCATION, PERMISSION_GROUP_ACCESS_MEDIA_LOCATION,
PERMISSION_GROUP_ACTIVITY_RECOGNITION, PERMISSION_GROUP_ACTIVITY_RECOGNITION,
PERMISSION_GROUP_UNKNOWN, PERMISSION_GROUP_UNKNOWN,
PERMISSION_GROUP_BLUETOOTH,
}) })
@interface PermissionGroup { @interface PermissionGroup {
} }
......
...@@ -160,6 +160,9 @@ final class PermissionManager { ...@@ -160,6 +160,9 @@ final class PermissionManager {
if (permission == PermissionConstants.PERMISSION_GROUP_NOTIFICATION) { if (permission == PermissionConstants.PERMISSION_GROUP_NOTIFICATION) {
return checkNotificationPermissionStatus(context); return checkNotificationPermissionStatus(context);
} }
if(permission == PermissionConstants.PERMISSION_GROUP_BLUETOOTH){
return checkBluetoothPermissionStatus(context);
}
final List<String> names = PermissionUtils.getManifestNames(context, permission); final List<String> names = PermissionUtils.getManifestNames(context, permission);
...@@ -244,6 +247,16 @@ final class PermissionManager { ...@@ -244,6 +247,16 @@ final class PermissionManager {
return PermissionConstants.PERMISSION_STATUS_DENIED; return PermissionConstants.PERMISSION_STATUS_DENIED;
} }
private int checkBluetoothPermissionStatus(Context context) {
List<String> names = PermissionUtils.getManifestNames(context, PermissionConstants.PERMISSION_GROUP_BLUETOOTH);
boolean missingInManifest = names == null || names.isEmpty();
if(missingInManifest) {
Log.d(PermissionConstants.LOG_TAG, "Bluetooth permission missing in manifest");
return PermissionConstants.PERMISSION_STATUS_DENIED;
}
return PermissionConstants.PERMISSION_STATUS_GRANTED;
}
@VisibleForTesting @VisibleForTesting
static final class ActivityResultListener static final class ActivityResultListener
implements PluginRegistry.ActivityResultListener { implements PluginRegistry.ActivityResultListener {
......
...@@ -193,6 +193,10 @@ public class PermissionUtils { ...@@ -193,6 +193,10 @@ public class PermissionUtils {
permissionNames.add(Manifest.permission.ACTIVITY_RECOGNITION); permissionNames.add(Manifest.permission.ACTIVITY_RECOGNITION);
break; break;
case PermissionConstants.PERMISSION_GROUP_BLUETOOTH:
if (hasPermissionInManifest(context, permissionNames, Manifest.permission.BLUETOOTH))
permissionNames.add(Manifest.permission.BLUETOOTH);
break;
case PermissionConstants.PERMISSION_GROUP_NOTIFICATION: case PermissionConstants.PERMISSION_GROUP_NOTIFICATION:
case PermissionConstants.PERMISSION_GROUP_MEDIA_LIBRARY: case PermissionConstants.PERMISSION_GROUP_MEDIA_LIBRARY:
case PermissionConstants.PERMISSION_GROUP_PHOTOS: case PermissionConstants.PERMISSION_GROUP_PHOTOS:
......
package com.baseflow.permissionhandler; package com.baseflow.permissionhandler;
import android.bluetooth.BluetoothAdapter;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
...@@ -43,6 +44,13 @@ final class ServiceManager { ...@@ -43,6 +44,13 @@ final class ServiceManager {
successCallback.onSuccess(serviceStatus); successCallback.onSuccess(serviceStatus);
return; return;
} }
if(permission == PermissionConstants.PERMISSION_GROUP_BLUETOOTH){
final int serviceStatus = isBluetoothServiceEnabled()
? PermissionConstants.SERVICE_STATUS_ENABLED
: PermissionConstants.SERVICE_STATUS_DISABLED;
successCallback.onSuccess(serviceStatus);
}
if (permission == PermissionConstants.PERMISSION_GROUP_PHONE) { if (permission == PermissionConstants.PERMISSION_GROUP_PHONE) {
PackageManager pm = context.getPackageManager(); PackageManager pm = context.getPackageManager();
...@@ -139,4 +147,9 @@ final class ServiceManager { ...@@ -139,4 +147,9 @@ final class ServiceManager {
Settings.Secure.LOCATION_PROVIDERS_ALLOWED); Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
return !TextUtils.isEmpty(locationProviders); return !TextUtils.isEmpty(locationProviders);
} }
private boolean isBluetoothServiceEnabled() {
final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
return bluetoothAdapter.isEnabled();
}
} }
...@@ -60,6 +60,9 @@ ...@@ -60,6 +60,9 @@
<!-- Permissions options for the `ignoreBatteryOptimizations` group --> <!-- Permissions options for the `ignoreBatteryOptimizations` group -->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<!-- Permissions options for the `bluetooth` group -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<application <application
android:name="io.flutter.app.FlutterApplication" android:name="io.flutter.app.FlutterApplication"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment