0
Я делаю проект для обнаружения устройства BLE, окружающего вас. Но, однако, устройство не может найти устройство BLE рядом. Устройство поддерживает BLE, но мое кодирование не может обнаружить устройство BLE. Пожалуйста, помогите мне, если какая-либо ошибка или что-то не хватает.Не удается найти устройство Bluetooth LE
public class MainActivity extends AppCompatActivity {
BluetoothLeScanner leScanner;
ArrayList<ScanFilter> scanFilters;
ScanSettings settings;
ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button scanStartbtn= (Button) findViewById(R.id.startscanbtn);
final BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();
settings=new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
scanFilters=new ArrayList<ScanFilter>();
scanStartbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
leScanner=adapter.getBluetoothLeScanner();
leScanner.startScan(scanFilters,settings,mScanCallback);
Toast.makeText(MainActivity.this, "Scanning started", Toast.LENGTH_LONG).show();
}
});
}
ScanCallback mScanCallback=new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
Toast.makeText(MainActivity.this, "Hey I found BLE device+onScanResult" + result.toString(), Toast.LENGTH_LONG).show();
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
dialog.dismiss();
for(ScanResult result:results) {
Toast.makeText(MainActivity.this, "Hey I found BLE device" + result.toString(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
if(errorCode==1) {
Toast.makeText(MainActivity.this, "Scan is already started" + errorCode, Toast.LENGTH_LONG).show();
}else if(errorCode==3)
{
Toast.makeText(MainActivity.this, "Scan is interrupted due to internal error" + errorCode, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "Unexpected error" + errorCode, Toast.LENGTH_LONG).show();
}
}
};
}
спасибо.
adapter.startScan() –
Я использовал BluetoothLeScanner объект leScanner.startScan(). который приходит на api 21 и его не отстает. – user3549768
Зачем вам BluetoothLeScanner? –