为usb网卡设置ip地址之一

当连接usb网卡时会弹出此界面(需内核usb网卡驱动支持)
        <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;
    }

你可能感兴趣的:(IP地址)