0

私はBluetoothLeScannerを使用してビーコンロケータを開発しようとしていますが、問題はScanCallBackが決して呼び出されないということです、onScanResult、onScanFailed、onBatchScanResultsが呼び出されます。 私はビーコン発信器を私の近くに配置しており、プレイストアで利用可能なビーコンロケータアプリで検出されます。私は何かが欠けているかどうかは分かりません。以下は私が使用しているコードです。 BluetoothLeScannerのオブジェクトを作成するためにBLE ScanCallBackはBluetoothLeScanner.startScan()で呼び出されません

<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 

コード:

まず私は、私のマニフェストに次の権限を追加

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
getApplicationContext().startActivity(enableBtIntent); 
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); 
mBluetoothLeScanner.startScan(mScanCallback); 

ScanCallBack:

protected ScanCallback mScanCallback = new ScanCallback() { 
@Override 
    public void onScanResult(int callbackType, ScanResult result) { 
    ScanRecord mScanRecord = result.getScanRecord(); 
    byte[] manufacturerData = mScanRecord.getManufacturerSpecificData(224); 
    int mRssi = result.getRssi(); 
} 

@Override 
public void onScanFailed(int errorCode){ 
    Toast.makeText(getApplicationContext(), "Failed", Toast.LENGTH_LONG); 
} 
}; 

私もなしていることを確認しましたオブジェクト値のうちのどれもがnullの場合、それらのすべてが完全に初期化されます。また、複数のデバイスでAPI 24でテストしたので、それも問題ではないと思います。 あなたのお手伝いをよろしくお願いします。

おかげ

答えて

1

かなりの研究を行った後、私はビーコンロケータの最善の解決策は、altbeaconライブラリを使用することであることが分かりました。ライブラリの使い方に関するさまざまなチュートリアルはオンラインで見ることができます。 https://altbeacon.github.io/android-beacon-library/samples.html ビーコンロケータを実装するのに自分のコードに興味がある人は、以下にコメントしてください。私はあなたにそれを知らせてくれると嬉しいです。

関連する問題