BroadcastReceiver在getName()上返回null

时间:2018-06-30 08:06:59

标签: java android

自从我开始开发应用程序以来,我就面临着这个问题。 我可以访问设备的MAC地址,RSSI强度,绑定状态,但是当我尝试获取设备的名称时,设备从未配对过,直到它显示为空。我正在使用Android版本5.1.1。

这是我的BroadcastReceiver:

if (bindingResult.hasErrors())
            return new ModelAndView("incident-rovd/create")
                    .addObject("typeIncident1", incidentTypeLevel1Repository.findAll())
                    .addObject("typeIncident2", form.getIncidentTypeLevel1() == null ? Collections.emptyList() : incidentTypeLevel2Repository.findAllByParent(form.getIncidentTypeLevel1()))
                    .addObject("typeIncident3", form.getIncidentTypeLevel2() == null ? Collections.emptyList() : incidentTypeLevel3Repository.findAllByParent(form.getIncidentTypeLevel2()))
                    .addObject("incidentRovdCreateForm", form);

一切正常,在之前配对设备时,它会正确显示名称和所有其他属性,但是在新设备上,我只会得到空值。

这是我的AndroidManifest.xml

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (BluetoothDevice.ACTION_FOUND.equals(action)) {

            final BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

             if (device.getName() != null) {
                    mDeviceList.add(device.getName() + "\n" + device.getAddress());
                    mDevices.add(device);
            } else {
                    mDeviceList.add(getString(R.string.uknown) + "\n" + device.getAddress());
                    mDevices.add(device);
            }

            /*
            ...
            Setting adapter for listView
            Setting onClickListeners
            ...
            */
        }
    }
};

请帮助,非常感谢。

0 个答案:

没有答案