简体   繁体   English

找不到蓝牙LE设备

[英]Can't find Bluetooth LE device

I am doing project to detect the BLE device surround you. 我正在做项目以检测您周围的BLE设备。 But however the device can't find any BLE device near by. 但是,该设备无法在附近找到任何BLE设备。 Device supports BLE, but my coding can't detect the BLE device. 设备支持BLE,但是我的编码无法检测到BLE设备。 Please help me if any mistake or anything missing. 如果有任何错误或遗漏,请帮助我。

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();
        }
    }
};
}

Thank you. 谢谢。

I think code below is enough : 我认为下面的代码就足够了:

final BluetoothAdapter adapter=BluetoothAdapter.getDefaultAdapter();
        adapter.startLeScan(new BluetoothAdapter.LeScanCallback() {
            @Override
            public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {

            }
        })

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM