android view stop,在API级别22中不推荐使用android – stopLeScan()和startLeScan() – 如何使用stopScan()和startScan()替...

在Android API级别22及以上,stopLeScan()和startLeScan()已被弃用。本文档展示了如何在onListItemClick()和scanLeDevice()方法中使用stopScan()和startScan()来替代这两个方法。问题在于如何在不同平台版本上适配,解决方案是检查Build.VERSION.SDK_INT,并根据版本调用相应的扫描方法。
摘要由CSDN通过智能技术生成

我看到stopLeScan()&在Android 5.1.1中不推荐使用startLeScan().我有问题替换我的stopLeScan()& startLeScan()方法.这是我的以下代码:

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

final BluetoothDevice device = mLeDeviceListAdapter.getDevice(position);

if (device == null) return;

final Intent intent = new Intent(this, MainActivity.class);

//intent.putExtra(DeviceControlActivity.EXTRAS_DEVICE_NAME, device.getName());

intent.putExtra(MainActivity.EXTRAS_DEVICE_ADDRESS, device.getAddress());

if (mScanning) {

mBluetoothAdapter.stopScan(mLeScanCallback);

mBluetoothAdapter.getBluetoothLeScanner();

mScanning = false;

}

startActivity(intent);

}

private void scanLeDevice(final boolean enable) {

if (enable) {

// Stops scanning after a pr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的示例代码: ```java public class MainActivity extends AppCompatActivity { private BluetoothAdapter mBluetoothAdapter; private Handler mHandler; private static final long SCAN_PERIOD = 10000; // 扫描时间,单位毫秒 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mHandler = new Handler(); // 获取 BluetoothAdapter 实例 mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { // 设备不支持蓝牙 Toast.makeText(this, "设备不支持蓝牙", Toast.LENGTH_SHORT).show(); finish(); return; } // 检查是否已经开启了蓝牙 if (!mBluetoothAdapter.isEnabled()) { // 如果蓝牙未开启,则请求用户开启蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, 1); } else { // 开始扫描 startScan(); } } // 开始扫描 private void startScan() { mHandler.postDelayed(new Runnable() { @Override public void run() { mBluetoothAdapter.stopLeScan(mLeScanCallback); } }, SCAN_PERIOD); mBluetoothAdapter.startLeScan(mLeScanCallback); } // 实现 BluetoothAdapter.LeScanCallback 接口 private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) { // 在这里处理扫描到的设备信息,例如将设备的 MAC 地址、设备名称和 RSSI 等信息显示在列表 runOnUiThread(new Runnable() { @Override public void run() { // 显示设备信息 Log.d("BLE", "Device name: " + device.getName() + ", MAC address: " + device.getAddress() + ", RSSI: " + rssi); } }); } }; @Override protected void onDestroy() { super.onDestroy(); // 停止扫描 mBluetoothAdapter.stopLeScan(mLeScanCallback); } } ``` 在这个示例,我们首先获取了 BluetoothAdapter 实例,并检查了设备是否支持蓝牙。然后在 onCreate() 方法检查了蓝牙是否已经开启,如果未开启,则请求用户开启蓝牙;如果已经开启,则调用 startScan() 方法开始扫描。在 startScan() 方法,我们使用 mHandler.postDelayed() 方法设置了扫描时间,然后调用 mBluetoothAdapter.startLeScan() 方法开始扫描。在扫描过程,每扫描到一个设备,就会调用 mLeScanCallback 回调方法,在这个方法可以获取到设备的 MAC 地址、设备名称和 RSSI 等信息。在 onDestroy() 方法,我们调用 mBluetoothAdapter.stopLeScan() 方法停止扫描。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值