私は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でテストしたので、それも問題ではないと思います。 あなたのお手伝いをよろしくお願いします。
おかげ