近期公司有蓝牙设备项目,遇到个问题;
连接蓝牙设备的app在连接时,如遇到蓝牙设备的信号名称错误或蓝牙设备关闭时,app有一定概率出现程序闪退;
经查证原因出现在接收蓝牙信号的广播的地方,原代码如下:
public BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//g_Context.unregisterReceiver(this); ---deleted by jerry
String action = intent.getAction();
String strDevName = new String();
if ( BluetoothDevice.ACTION_FOUND.equals(action) ) {
BluetoothDevice device = intent

在Android蓝牙设备项目中,当蓝牙设备名称错误或关闭时,应用可能会崩溃。问题定位在BroadcastReceiver处理ACTION_FOUND时的空指针异常。解决办法是在比较蓝牙设备名称前检查名称是否为null,避免空对象调用接口。此外,当收到'android.bluetooth.adapter.action.DISCOVERY_FINISHED'广播时,应用应提供明确的结束提示。
最低0.47元/天 解锁文章
1866

被折叠的 条评论
为什么被折叠?



