gpt4 book ai didi

java - 移动数据未打开

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:02 27 4
gpt4 key购买 nike

我问了这个问题,但没有得到任何答复。

我使用以下代码打开移动数据(3G)。

private static void setMobileDataEnabled(Context context, boolean enabled){

try{
ConnectivityManager conman = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
Method setMobileDataEnabledMethod = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(conman, enabled);

}catch(NoSuchMethodException e){e.printStackTrace();}
catch(InvocationTargetException e){e.printStackTrace();}
catch(IllegalAccessException e){e.printStackTrace();}

}

我称之为:

setMobileDataEnabled(getBaseContext(), true/false);

它可以正确启用/禁用移动数据,但此代码无法在双卡设备上正常工作。我在摩托罗拉 Razr D1、D3 和三星双卡双待(现在不记得了)上对其进行了测试,但这段代码不起作用。一切正常,应用程序没有崩溃。

我尝试了“getApplicationContext()”和“this”,而不是“getBaseContext()”,但没有任何改变。

我了解到 Android 不是为双芯片设备设计的,这可能是个问题,因为我无法定位任何 SIM 卡,所以我无法找到任何技巧或其他任何东西来“修复”代码,我说得对吗?

如何在双芯片设备上打开/关闭移动数据?我看了一下源代码,setMobileDataEnabled 是“public”,什么时候不应该访问它?

我也找到了 IConnectivityManager 类,但它不是 java 扩展,我认为它是 .aidl 之类的(不记得了),它会有用吗?

我不知道该怎么办,我确实需要帮助。

对不起我的英语。

谢谢。

最佳答案

试试这个链接 Enable/Disable Mobile Data (GPRS) using code

始终建议使用通用方法。但是,您的代码可能仅适用于 API 8/API 10。您是否在 android list 文件中添加了权限?检查链接问题的第一个答案并执行。

如果它不起作用,请检查与您的代码相同的第二个。但是,我会推荐第一种方法,因为这样,您就不必为每个 API 分别编写代码。同样正如@tdevinda 所说,代码可能因设备到设备、单 sim 到多 sim、gsm-cdma-wcdma 版本、API 级别和设备制造商而异。希望对您有所帮助:)

编辑: 目前还没有来自 android 开发者页面的官方帮助。但是,您可以提出请求。我也找不到任何解决方案。双卡问题没有解决。

编辑 2: 检查图像。 Solution Trick

关于java - 移动数据未打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372031/

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