|
63 | 63 | /** FlutterBluePlugin */
|
64 | 64 | public class FlutterBluePlugin implements FlutterPlugin, ActivityAware, MethodCallHandler, RequestPermissionsResultListener {
|
65 | 65 | private static final String TAG = "FlutterBluePlugin";
|
66 |
| - private static FlutterBluePlugin instance; |
67 | 66 | private Object initializationLock = new Object();
|
68 | 67 | private Context context;
|
69 | 68 | private MethodChannel channel;
|
@@ -91,9 +90,7 @@ public class FlutterBluePlugin implements FlutterPlugin, ActivityAware, MethodCa
|
91 | 90 |
|
92 | 91 | /** Plugin registration. */
|
93 | 92 | public static void registerWith(Registrar registrar) {
|
94 |
| - if (instance == null) { |
95 |
| - instance = new FlutterBluePlugin(); |
96 |
| - } |
| 93 | + FlutterBluePlugin instance = new FlutterBluePlugin(); |
97 | 94 | Activity activity = registrar.activity();
|
98 | 95 | Application application = null;
|
99 | 96 | if (registrar.context() != null) {
|
@@ -151,6 +148,7 @@ private void setup(
|
151 | 148 | Log.i(TAG, "setup");
|
152 | 149 | this.activity = activity;
|
153 | 150 | this.application = application;
|
| 151 | + this.context = application; |
154 | 152 | channel = new MethodChannel(messenger, NAMESPACE + "/methods");
|
155 | 153 | channel.setMethodCallHandler(this);
|
156 | 154 | stateChannel = new EventChannel(messenger, NAMESPACE + "/state");
|
@@ -240,10 +238,10 @@ public void onMethodCall(MethodCall call, Result result) {
|
240 | 238 |
|
241 | 239 | case "startScan":
|
242 | 240 | {
|
243 |
| - if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) |
| 241 | + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) |
244 | 242 | != PackageManager.PERMISSION_GRANTED) {
|
245 | 243 | ActivityCompat.requestPermissions(
|
246 |
| - activity, |
| 244 | + activityBinding.getActivity(), |
247 | 245 | new String[] {
|
248 | 246 | Manifest.permission.ACCESS_FINE_LOCATION
|
249 | 247 | },
|
@@ -308,9 +306,9 @@ public void onMethodCall(MethodCall call, Result result) {
|
308 | 306 | // New request, connect and add gattServer to Map
|
309 | 307 | BluetoothGatt gattServer;
|
310 | 308 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
311 |
| - gattServer = device.connectGatt(activity, options.getAndroidAutoConnect(), mGattCallback, BluetoothDevice.TRANSPORT_LE); |
| 309 | + gattServer = device.connectGatt(context, options.getAndroidAutoConnect(), mGattCallback, BluetoothDevice.TRANSPORT_LE); |
312 | 310 | } else {
|
313 |
| - gattServer = device.connectGatt(activity, options.getAndroidAutoConnect(), mGattCallback); |
| 311 | + gattServer = device.connectGatt(context, options.getAndroidAutoConnect(), mGattCallback); |
314 | 312 | }
|
315 | 313 | mDevices.put(deviceId, new BluetoothDeviceCache(gattServer));
|
316 | 314 | result.success(null);
|
@@ -728,13 +726,13 @@ public void onReceive(Context context, Intent intent) {
|
728 | 726 | public void onListen(Object o, EventChannel.EventSink eventSink) {
|
729 | 727 | sink = eventSink;
|
730 | 728 | IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
|
731 |
| - activity.registerReceiver(mReceiver, filter); |
| 729 | + context.registerReceiver(mReceiver, filter); |
732 | 730 | }
|
733 | 731 |
|
734 | 732 | @Override
|
735 | 733 | public void onCancel(Object o) {
|
736 | 734 | sink = null;
|
737 |
| - activity.unregisterReceiver(mReceiver); |
| 735 | + context.unregisterReceiver(mReceiver); |
738 | 736 | }
|
739 | 737 | };
|
740 | 738 |
|
|
0 commit comments