2017-05-26 69 views
0

我正在灯塔在我的应用程序类像这样发生了什么事:如果Android设备没有蓝牙的支持信时运行

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     beaconManager = new BeaconManager(getApplicationContext()); 
     beaconManager.setBackgroundScanPeriod(5000, 25000); 
     beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() { 
      @Override 
      public void onEnteredRegion(Region region, List<Beacon> list) { 


      } 

      @Override 
      public void onExitedRegion(Region region) { 

      } 
     }); 
     beaconManager.connect(new BeaconManager.ServiceReadyCallback() { 
      @Override 
      public void onServiceReady() { 

       beaconManager.startMonitoring(new Region("rid", null, null, null)); 
      } 
     }); 

    } 

这是我的设备上正常运行,但在仿真器崩溃。因为模拟器没有蓝牙支持。所以我的问题是如果真正的设备没有蓝牙会发生什么?如果它会崩溃,我该如何防止它?有可能是Android设备高于4.3没有蓝牙?

E/BluetoothAdapter: Bluetooth binder is null 
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.bluetooth.BluetoothAdapter.isEnabled()' on a null object reference 
                   at com.estimote.sdk.service.internal.JellyBeanBluetoothAdapter.start(JellyBeanBluetoothAdapter.java:43) 
                   at com.estimote.sdk.service.internal.CycleBluetoothScanner.start(CycleBluetoothScanner.java:64) 
                   at com.estimote.sdk.service.BeaconService.startScanning(BeaconService.java:336) 
                   at com.estimote.sdk.service.BeaconService.startMonitoring(BeaconService.java:286) 
                   at com.estimote.sdk.service.BeaconService.access$300(BeaconService.java:69) 
                   at com.estimote.sdk.service.BeaconService$IncomingHandler$1.run(BeaconService.java:440) 
                   at android.os.Handler.handleCallback(Handler.java:751) 
                   at android.os.Handler.dispatchMessage(Handler.java:95) 
                   at android.os.Looper.loop(Looper.java:154) 
                   at android.os.HandlerThread.run(HandlerThread.java:61) 
+0

您需要在执行培根代码之前检查蓝牙许可,当设备有蓝牙时,它将运行其他显示,而不是消息,该设备不受支持。 –

+0

你有什么异常?发布logcat。 – Henry

+0

你不应该担心这个问题。因为有罕见的设备,因为我甚至没有听过任何一个没有蓝牙设备的设备。 –

回答

0
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
if (bluetoothAdapter == null) { 
    //Bluetooth is not supported 
} else{ 
    //Bluetooth is supported 
} 

而且不要忘记添加蓝牙权限清单中。

相关问题