Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Enabling USB tethering programmatically - there is an app that did it for 2.3

Tags:

android

usb

I've read many questions here on SO that ask how to enable USB tethering programmatically.

The answer is always the same, ordinary applications can't do it, only system apps.

Yet for 2.3 you could download an app in the market that would do it for you.

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

On ICS (Android 4.0.3) it no longer works.

How did they do it for 2.3? Is it possible also for 4.0?

like image 271
Elad Nava Avatar asked Mar 28 '12 18:03

Elad Nava


2 Answers

using the following code you can enable USB tethering. i didt test in 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();
                        }
                    }
                }
        }
like image 161
abbas.aniefa Avatar answered Sep 18 '22 07:09

abbas.aniefa


ICS and above: To execute the reflection method, the application would require the WRITE_SECURE_SETTINGS permission.

This is not available unless the phone is rooted.

like image 39
ics.user Avatar answered Sep 22 '22 07:09

ics.user