蓝牙闪退问题:在BroadcastReceiver 中要匹配特殊的蓝牙设备名称时闪退

// 查找到设备和搜索完成action监听器
private BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();

        // 查找到设备action
        if( BluetoothDevice.ACTION_FOUND.equals(action) ) 
        {
            BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            mDevicesArrayAdapter.add(device.getName() + " " + device.getAddress());
            /*if( device.getName().contains("HC-06") ) // 经常闪退,注释掉就没事了。
            {
                mBtAdapter.cancelDiscovery();
                setProgressBarIndeterminateVisibility(false);
                OnClickCloseScan( null );
            }*/
        } 
        else if( BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action) ) 
        {
            setProgressBarIndeterminateVisibility(false);
            setTitle("选择要连接的设备");
            if( mDevicesArrayAdapter.getCount() == 0 ) 
            {
                String noDevices = "没有找到新设备";
                mDevicesArrayAdapter.add(noDevices);
            }
        }
    }
};

可以把崩溃日志贴出来吗?

这个问题我遇到了,现分享一下解决办法。
当蓝牙扫描到只有MAC地址的蓝牙信号时,他的device.getname是Null
这是在判断contains就会出错。因此要先加一级null判断在contains外边
if(device.getname()!=null)
{
if( device.getName().contains("HC-06") )
{
......
}
}
相信你的也是这个问题