接收广播错误蓝牙发现

编程入门 行业动态 更新时间:2024-10-14 18:21:35
本文介绍了接收广播错误蓝牙发现 - 错误onRecieve()方法,通过startDiscovery接收意图()方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

您好我是新来的Andr​​oid编程,我面临着设备扫描活动的一个问题。我想扫描所有蓝牙设备在附近,并且打印出来的UI。但我得到相同的运行时错误在Receiving广播错误的蓝牙发现。请请请帮我调试我的code。

公共类MainActivity扩展ActionBarActivity {    BluetoothAdapter mBluetoothAdapter;    私人INT REQUEST_ENABLE_BT = 1000;    公众的ArrayList<串GT; deviceArrayList =新的ArrayList<>();    公众的ArrayList<&BluetoothDevice类GT; DEVICELIST =新的ArrayList<>();    @覆盖    保护无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);        的setContentView(R.layout.activity_main);    }    @覆盖    保护无效onResume(){        // TODO自动生成方法存根        super.onResume();        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();        如果(mBluetoothAdapter == NULL){            //设备不支持蓝牙            Toast.makeText(这一点,设备不支持蓝牙!!!,Toast.LENGTH_LONG).show();            返回;        }        如果(!mBluetoothAdapter.isEnabled()){            意图enableBtIntent =新意图(BluetoothAdapter.ACTION_REQUEST_ENABLE);            startActivityForResult(enableBtIntent,REQUEST_ENABLE_BT);        }        scanStart();    }    公共无效scanStart(){        // TODO自动生成方法存根        //添加配对设备到ArrayList中        addPairedDevices();        如果(mBluetoothAdapter.isDiscovering()){            mBluetoothAdapter.cancelDiscovery();        }        如果(mBluetoothAdapter.startDiscovery()==真){            Toast.makeText(这一点,搜索...,Toast.LENGTH_LONG).show();        }        其他{            Toast.makeText(这一点,蓝牙适配器了NULL值,Toast.LENGTH_SHORT).show();        }        //注册的BroadcastReceiver        IntentFilter的过滤器=新的IntentFilter(BluetoothDevice.ACTION_FOUND);        this.registerReceiver(requestReciever,过滤器); //不要忘记的onDestroy期间注销        尝试{            视频下载(12000);        }赶上(InterruptedException的E){            // TODO自动生成catch块            e.printStackTrace();        }        在UI //打印设备列表        ListView控件LV =新的ListView(这一点);        ArrayAdapter<串GT; listAdapter =新ArrayAdapter<>(这一点,R.layout.print_device_list,deviceArrayList);        lv.setAdapter(listAdapter);        的setContentView(LV);        如果(deviceArrayList.size()&下; = 0){            Toast.makeText(这一点,未找到设备...,Toast.LENGTH_LONG).show();        }    }    公共无效addPairedDevices(){        // TODO自动生成方法存根        //获取配对设备        SET<&BluetoothDevice类GT; pairedDevices = mBluetoothAdapter.getBondedDevices();        //如果有配对设备        如果(pairedDevices.size()大于0){            //循环配对设备            对于(BluetoothDevice类设备:pairedDevices){                //添加名称和地址到一个数组适配器在ListView显示                deviceArrayList.add(device.getName()+\\ n+ device.getAddress()+\\ n+ device.getUuids()[0] .getUuid());                deviceList.add(设备);            }        }    }    私人广播接收器requestReciever =新的广播接收器(){        公共无效的onReceive(上下文的背景下,意图意图){            如果(意向== NULL){                返回;            }            字符串行动= intent.getAction();            如果(BluetoothDevice.ACTION_FOUND.equals(动作)){                Log.d(BT,设备中找到);                BluetoothDevice类设备= intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);                如果(设备!= NULL){                    如果(device.getName()=空&放大器;!&放大器; device.getName()长度()大于0){                        deviceArrayList.add(device.getName()+\\ n+ device.getAddress()+\\ n+ device.getUuids()[0] .getUuid());                        deviceList.add(设备);                    }                }            }        };    };    @覆盖    保护无效的onActivityResult(INT申请code,INT结果code,意图数据){        // TODO自动生成方法存根        super.onActivityResult(要求code,结果code,数据);        如果(要求code == REQUEST_ENABLE_BT){            如果(结果code == Activity.RESULT_CANCELED){                Toast.makeText(这一点,UESR想不打开蓝牙!!!,Toast.LENGTH_LONG).show();                返回;            }        }    }    @覆盖    保护无效的onDestroy(){        // TODO自动生成方法存根        super.onDestroy();        如果(mBluetoothAdapter!= NULL){            mBluetoothAdapter.cancelDiscovery();        }        如果(requestReciever!= NULL)            unregisterReceiver(requestReciever);        Toast.makeText(这一点,蓝牙应用程序已停止,Toast.LENGTH_LONG).show();    }}

解决方案

device.getUuids() - 在这里你有一个空,这就是为什么你在这里有一个错误。检查这个变量beforе使用它。

Hi I am new to android programming and i am facing a problem in device scan activity. I want to scan all bluetooth devices in vicinity and print them on UI. But i am getting the same run time error as in Receiving broadcast error for Bluetooth discovery. Please, please please help me to debug my code.

public class MainActivity extends ActionBarActivity { BluetoothAdapter mBluetoothAdapter; private int REQUEST_ENABLE_BT = 1000; public ArrayList<String> deviceArrayList = new ArrayList<>(); public ArrayList<BluetoothDevice> deviceList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) { // Device does not support Bluetooth Toast.makeText(this, "Device Doesn't Support Bluetooth!!!", Toast.LENGTH_LONG).show(); return; } if (!mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT ); } scanStart(); } public void scanStart() { // TODO Auto-generated method stub //Adding Paired Devices into ArrayList addPairedDevices(); if(mBluetoothAdapter.isDiscovering()){ mBluetoothAdapter.cancelDiscovery(); } if(mBluetoothAdapter.startDiscovery() == true){ Toast.makeText(this, "Searching...", Toast.LENGTH_LONG).show(); } else{ Toast.makeText(this, "Bluetooth Adapter got Null Value", Toast.LENGTH_SHORT).show(); } // Register the BroadcastReceiver IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND); this.registerReceiver(requestReciever, filter); // Don't forget to unregister during onDestroy try { Thread.sleep(12000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Printing Device List on UI ListView lv = new ListView(this); ArrayAdapter<String> listAdapter = new ArrayAdapter<>(this, R.layout.print_device_list, deviceArrayList); lv.setAdapter(listAdapter); setContentView(lv); if(deviceArrayList.size()<=0){ Toast.makeText(this, "No Devices Found...", Toast.LENGTH_LONG).show(); } } public void addPairedDevices() { // TODO Auto-generated method stub // get paired devices Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices(); // If there are paired devices if (pairedDevices.size() > 0) { // Loop through paired devices for (BluetoothDevice device : pairedDevices) { // Add the name and address to an array adapter to show in a ListView deviceArrayList.add(device.getName() + "\n" + device.getAddress() + "\n" + device.getUuids()[0].getUuid()); deviceList.add(device); } } } private BroadcastReceiver requestReciever = new BroadcastReceiver(){ public void onReceive(Context context, Intent intent) { if (intent == null) { return; } String action = intent.getAction(); if(BluetoothDevice.ACTION_FOUND.equals(action)){ Log.d("BT", "Device Found"); BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if(device!=null){ if(device.getName() != null && device.getName().length() > 0){ deviceArrayList.add(device.getName()+"\n"+device.getAddress()+"\n"+device.getUuids()[0].getUuid()); deviceList.add(device); } } } }; }; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQUEST_ENABLE_BT){ if(resultCode == Activity.RESULT_CANCELED){ Toast.makeText(this, "Uesr Doesn't want to switch on Bluetooth!!!", Toast.LENGTH_LONG).show(); return; } } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(mBluetoothAdapter != null){ mBluetoothAdapter.cancelDiscovery(); } if(requestReciever!=null) unregisterReceiver(requestReciever); Toast.makeText(this, "Bluetooth App Stopped", Toast.LENGTH_LONG).show(); } }

解决方案

device.getUuids() - here you have a Null, that is why you have an error here. Check this variable beforе using it.

更多推荐

接收广播错误蓝牙发现

本文发布于:2023-11-25 02:22:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1627935.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:蓝牙   错误   发现

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!