Android在AOSP中以编程方式启用Usb Tethering

时间:2014-08-17 13:34:32

标签: android tethering

我正在开发Android应用程序。当Usb连接时,我需要以编程方式启用Usb网络共享。由于Android安全性,我无法在4.4版本中执行此操作。所以我下载了android 4.4源代码,对它做了一些修改。任何人都可以指导我怎么做?

1 个答案:

答案 0 :(得分:0)

以下代码可以在4.0,4.1,4.2版本中正常运行,但在4.3和4.4版本中无法正常运行

try {  


            Class<?> classBluetoothPan = Class.forName(sClassName);

            Constructor<?> ctor = classBluetoothPan.getDeclaredConstructor(Context.class, BluetoothProfile.ServiceListener.class);
            ctor.setAccessible(true);
            //Object instance = ctor.newInstance(getApplicationContext(), new BTPanServiceListener(getApplicationContext()));                 
            Object instance = ctor.newInstance(this, new BTPanServiceListener(this));
            //  Set Tethering ON
            Class[] paramSet = new Class[1];
            paramSet[0] = boolean.class;

            Method setTetheringOn = classBluetoothPan.getMethod("setBluetoothTethering", paramSet);
            //Method setTetheringOn = classBluetoothPan.getDeclaredMethod("setBluetoothTethering", paramSet);

            setTetheringOn.invoke(instance,true);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }