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

Java 如何调用UsbDevice.getDeviceName()方法-无错误(无法从静态上下文引用),java,android,static,non-static,Java,Android,Static,Non Static,为什么下面的方法行不通 import android.hardware.usb.UsbDevice; public class work { public String getDeviceName(){ return UsbDevice.getDeviceName(); }; } 返回“无法从静态上下文引用getDeviceName() 如何正确调用UsbDevice.getDeviceName();方法?-我的类“work”不是静态的,因此为什么会出现此错误

为什么下面的方法行不通

import android.hardware.usb.UsbDevice;

public class work {
    public String getDeviceName(){
        return UsbDevice.getDeviceName();
    };
}
返回“无法从静态上下文引用getDeviceName()


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

您需要创建一个
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();

    }
};
要获取已连接的设备:

 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 manager=(UsbManager)getSystemService(Context.USB_服务)

HashMap deviceList=manager.getDeviceList();
迭代器deviceIterator=deviceList.values().Iterator();
while(deviceIterator.hasNext()){
UsbDevice device=deviceIterator.next();
manager.requestPermission(设备、mPermissionIntent);
字符串名称=device.getDeviceName();
}}