Da dies eine der beliebtesten Seiten in den Google-Ergebnissen zu diesem Thema ist, möchte ich meinen Code beitragen, der die verfügbaren Schnittstellen überprüft. Es funktioniert auf einem Lebkuchen-Telefon, das ich habe, aber nicht mein Galaxy S3.
// DETECT INTERFACE NAME
Log.i("UsbTethering","Detecting tetherable usb interface.");
String[] available = null;
ConnectivityManager connMgr = (ConnectivityManager)connectivityServiceObject;
Method[] wmMethods = connMgr.getClass().getDeclaredMethods();
for(Method getMethod: wmMethods)
{
if(getMethod.getName().equals("getTetherableUsbRegexs"))
{
try
{
available = (String[]) getMethod.invoke(connMgr);
break;
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
// DETECT INTERFACE NAME
if(available.length > 0)
{
for(String interfaceName : available)
{
Log.i("UsbTethering", "Detected " + String.valueOf(available.length) + " tetherable usb interfaces.");
Log.i("UsbTethering", "Trying to " + desiredString + " UsbTethering on interface " + interfaceName + "...");
Integer returnCode = (Integer)method.invoke(connectivityServiceObject, interfaceName);
if(returnCode == 0)
{
Log.i("UsbTethering", "UsbTethering " + desiredString + "d.");
return true;
}
else
{
Log.w("UsbTethering", "Failed to " + desiredString + "Usb Tethering. ReturnCode of method " + method.getName() + ": " + String.valueOf(returnCode));
}
}
}
"Die Antwort ist immer die gleiche, normale Anwendungen können es nicht tun, nur System-Apps." - Genau genommen gibt es im Android SDK nichts, um USB-Tethering zu verwalten. – CommonsWare
Ja, also wie hat es die App geschafft? Es ist möglicherweise nicht im SDK, aber es ist sicherlich möglich! War es ein schmutziger Trick? Ein Exploit? Vielleicht wurde es in 4.0 gepatcht? –