2017-01-06 1 views
1

BLEのAndroidアプリがあります。私はBLEをオフにし、RAMでアプリを終了します。 私は強制的に閉じる。Bluetoothがオフのときにアプリケーションがクラッシュする

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.bluetooth.le.BluetoothLeScanner.stopScan(android.bluetooth.le.ScanCallback)' on a null object reference 
                        at com.hi.ble.utils.BLEScanner.stopScan(Unknown Source) 

私は私のコードをチェックすると、それはこのようなものです - -

public void stopScan() { 

     if(bluetoothAdapter == null) { 
      return; 
     } 

     if (Build.VERSION.SDK_INT < 21) { 
      Log.i(TAG, "Stopping BLE scan (SDK < 21)"); 
      bluetoothAdapter.stopLeScan(this); 

     } else { 
      Log.i(TAG, "Stopping BLE scan (SDK >= 21)"); 
       mLEScanner.stopScan(mScanCallback); 
     } 
     runnerRunning = false; 
     thread = null; 

    } 

どのように私は終わっこの問題は来るのか?私はそれを言うログを参照するとき

+0

を試してみてください?そうでなければそれを行い、一度その結果を得たら、あなたの機能を開始してください –

+0

はい...しかし、まだユーザーがブルートゥースをオンにしてRAM内のアプリを殺したくない場合はどうしますか? –

+0

mLEScannerはnullです。 http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it – krossovochkin

答えて

0

は、あなたは、Bluetoothをオンにするために、ユーザーに通知していないこの

public void stopScan() { 


    if (Build.VERSION.SDK_INT < 21) { 
     Log.i(TAG, "Stopping BLE scan (SDK < 21)"); 
     if(bluetoothAdapter != null) bluetoothAdapter.stopLeScan(this); 

    } else { 
     Log.i(TAG, "Stopping BLE scan (SDK >= 21)"); 
     if(mLEScanner!= null) mLEScanner.stopScan(mScanCallback); 
    } 
    runnerRunning = false; 
    thread = null; 

} 
関連する問題