gpt4 book ai didi

android - 在 Android 上检测 USB 网络共享

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:22 24 4
gpt4 key购买 nike

有什么方法可以(以编程方式)在您的 Activity/应用程序中知道用户已在他的手机上启用 USB 网络共享?

最佳答案

您还可以使用反射来访问用于设置 USB 网络共享的隐藏功能。这是我的代码。

    ConnectivityManager cm =
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
Log.d(TAG,"test enable usb tethering");
String[] available = null;
int code=-1;
Method[] wmMethods = cm.getClass().getDeclaredMethods();

for(Method method: wmMethods){
if(method.getName().equals("getTetherableIfaces")){
try {
available = (String[]) method.invoke(cm);
break;
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
}
}

for(Method method: wmMethods){
if(method.getName().equals("tether")){
try {
code = (Integer) method.invoke(cm, available[0]);


} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
break;
}
}

if (code==0)
Log.d(TAG,"Enable usb tethering successfully!");
else
Log.d(TAG,"Enable usb tethering failed!");

要禁用 USB 网络共享,只需将反射方法名称“getTetherableIfaces”更改为“getTetheredIfaces”,将“tether”更改为“untether”即可。

请检查。

关于android - 在 Android 上检测 USB 网络共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com