如何调用UsbDevice.getDeviceName()方法-无错误(无法从静态上下文中引用)

问题描述 投票:0回答:1

为什么以下内容不起作用?

import android.hardware.usb.UsbDevice;

public class work {
    public String getDeviceName(){
        return UsbDevice.getDeviceName();
    };
}

返回“不能从静态上下文中引用getDeviceName()。

如何正确调用UsbDevice.getDeviceName();方法? -我的班级“工作”不是静态的,为什么会出现此错误?

java android static non-static
1个回答
0
投票

您需要创建一个UsbDevice对象并从中调用方法。

UsbDevice usbDevice=//something;
String deviceName = usbDevice.getDeviceName();

例如:

要实时获取连接设备:

 private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        UsbDevice usbDevice = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
        String deviceName = usbDevice.getDeviceName();

    }
};

要获取已连接的设备:

public void getConnectedDevices(){UsbManager管理器=(UsbManager)getSystemService(Context.USB_SERVICE);

    HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
    Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
    while (deviceIterator.hasNext()) {
        UsbDevice device = deviceIterator.next();

        manager.requestPermission(device, mPermissionIntent);
        String name= device.getDeviceName();

    }}
© www.soinside.com 2019 - 2024. All rights reserved.