当连接usb网卡时会弹出此界面(需内核usb网卡驱动支持)
device_filter.xml,指定要监视的usb网卡设备
MainActivity.java
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
</activity>
device_filter.xml,指定要监视的usb网卡设备
<resources>
<usb-device vendor-id="1060" product-id="38144" />
</resources>
MainActivity.java
private static final String ETH0 = "eth0";
protected void onResume() {
...
UsbDevice device = (UsbDevice)getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (device != null) {
printf("first connect"+device.toString())
} else if (isEth0Connected()){
printf("had connected already")
}
...
}
private boolean isEth0Connected() {
IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
INetworkManagementService service = INetworkManagementService.Stub.asInterface(b);
String[] currentIfaces = new String[0];
try {
currentIfaces = service.listInterfaces();
} catch (Exception e) {
Log.w(TAG, "listInterfaces="+e);
return false;
}
boolean found = false;
for (String currIface: currentIfaces) {
if (currIface.equals(ETH0)) {
Log.d(TAG, "eth0 iface found");
found = true;
break;
}
}
return found;
}