可能是由于没有将接收到的Ble广播信息添加到列表视图的适配器中导致未显示。可以通过以下代码实现:
首先,在适配器中定义一个ArrayList用于存储Ble广播信息:
ArrayList
然后,在接收到Ble广播的onReceive()方法中将信息添加到该ArrayList中,并调用适配器的notifyDataSetChanged()方法通知列表更新:
public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); if (action.equals(BluetoothDevice.ACTION_FOUND)) { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); String deviceName = device.getName(); String deviceHardwareAddress = device.getAddress(); String bleInfo = deviceName + "\n" + deviceHardwareAddress; bleList.add(bleInfo); adapter.notifyDataSetChanged(); } }
最后,在适配器的getView()方法中将ArrayList中的数据显示在列表视图的对应位置上:
public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.list_item_ble, parent, false); } TextView tvBleInfo = convertView.findViewById(R.id.tv_ble_info); tvBleInfo.setText(bleList.get(position)); return convertView; }
下一篇:BLE广告--获取设备显示名称