以编程方式启用USB网络共享 - 有一个应用程序为2.3做了它

Ela*_*ava 8 usb android

我在这里阅读了很多关于如何以编程方式启用USB网络共享的问题.

答案总是一样的,普通应用程序无法做到,只有系统应用程序.

然而对于2.3,您可以在市场上下载一个可以为您完成的应用程序.

https://play.google.com/store/apps/details?id=org.tdtran.autousbtethering

在ICS(Android 4.0.3)上它不再有效.

他们是如何为2.3做的?是否有可能4.0?

abb*_*efa 8

使用以下代码,您可以启用USB网络共享.我在4.0中测试过.

 public void switchOnTethering() {

                Object obj = getSystemService(Context.CONNECTIVITY_SERVICE);
                for (Method m : obj.getClass().getDeclaredMethods()) {

                    if (m.getName().equals("tether")) {
                        try {
                            m.invoke(obj, "usb0");
                        } catch (IllegalArgumentException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IllegalAccessException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (InvocationTargetException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }
        }
Run Code Online (Sandbox Code Playgroud)


小智 6

ICS及以上:要执行反射方法,应用程序将需要WRITE_SECURE_SETTINGS权限.

除非手机已植根,否则无法使用此功能.

  • 这只是第一个问题.然后你会得到这个:01-17 22:29:40.983:E/Tethering(2632):试图用一个未知的iface:usb0,忽略在我的HTC Sensation上,它实际上是rndis0而不是usb0!? (3认同)