これは、このトピックのGoogleの結果で最も人気のあるページの1つで、使用可能なインターフェイスを確認している自分のコードを提供したいと考えています。それは私が持っているジンジャーブレッドの携帯電話で動作しますが、私のギャラクシー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));
}
}
}
"答えは常に同じで、通常のアプリケーションではできません。システムアプリだけです。" - より正確には、Android SDKにUSBテザリングを管理するものは何もありません。 – CommonsWare
はい、そのアプリはどのように管理しましたか?それはSDKにないかもしれませんが、確かに可能です!それは汚いトリックでしたか?悪用?おそらく4.0にパッチが当てられたでしょうか? –