2

私はBLE startLescanを使用していましたが、現在は廃止されています。今度はAPI level to 23 (from 20)を変更し、BluetoothLeScannerを使用しています。 マイスタートスキャン機能は次のとおりです。NoSuchMethod例外

方法は、ルックアップセレクタに失敗しました 署名と "getBluetoothLeScanner"「(:

public void startScan(){ 
    mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); 

    mBluetoothLeScanner.startScan(new ScanCallback() { 
      @Override 
      public void onScanResult(int callbackType, ScanResult result) { 
       super.onScanResult(callbackType, result); 

       String s = "\nRssi : "+result.getRssi()+"" + 
         "\nName (Get Device) : "+result.getDevice().getName()+"" + 
         "\nBytes"+result.getScanRecord().getBytes()+"" + 
         "\nGet Device : " + result.getDevice()+"" + 
         "\nAddress : "+result.getDevice().getAddress()+"" + 
         "\nService UUIds : "+result.getScanRecord().getServiceUuids().get(0)+"" +  //Unique 
         "\nName (Scan Record) : "+result.getScanRecord().getDeviceName()+"" + 
         "\nUuids device : "+result.getDevice().getUuids()+"" + 
         "\nDescribe contents : "+result.describeContents(); 

       //This will show you all the data in logs. 
       Log.e("All Data",s); 



      } 

      @Override 
      public void onBatchScanResults(List<ScanResult> results) { 
       super.onBatchScanResults(results); 
      } 

      @Override 
      public void onScanFailed(int errorCode) { 
       super.onScanFailed(errorCode); 
      } 
     }); 

私は最初のラインに到達

javaはnosuchmethod例外をスローします)Landroid/bluetooth/le/BluetoothLeScanner; "

+0

「startScan」メソッドの上にコードを示してください。どのように 'mBluetoothAdapter'を初期化していますか?/ –

答えて

0

デバイスのAPIバージョンが20以下の場合、新しいAPIを使用できなくなります。したがって、デバイスのバージョンに基づいて、両方のスキャン方法を実装し、使用するバージョンを確認する必要があります。 (Kitkatは新しいスキャンAPIをサポートしません!)

1

この場合、BluetoothAdapterのインスタンスが必要です。

Context mContext = getBaseContext(); 
BluetoothAdapter mBluetoothAdapter = (BluetoothManager) mContext.getSystemService(Context.BLUETOOTH_SERVICE).getAdapter(); 
BluetoothLeScanner mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); 

mBluetoothLeScanner.startScan(new ScanCallback() {…. 

} 
+0

Bluetoothアダプターはそこにあります。BluetoothManager manager =(BluetoothManager)getSystemService(BLUETOOTH_SERVICE); \t \t \t \t \t \t mBluetoothAdapter = manager.getAdapter(); – Samra

関連する問題