相关疑难解决方法(0)

如何在Android上禁用移动数据

在有人告诉我购买应用程序之前快速回复故事.=)

我刚拿到EVO,它可以很快地咀嚼电池.我下载了JuiceDefender来管理我的移动数据连接.这看起来相当不错.但是,设置非常有限(即使在付费版本上).

截至目前,我正在尝试开发更加可定制的节电应用程序.我想要做的主要事情是能够随意启用/禁用移动数据连接.

问题是我找不到任何代码片段或文章如何做到这一点.我发现的唯一的事情是以下.我不知道这是多么准确,但这就是我可以拼凑浏览developer.android.com

ConnectivityManager cm = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);
cm.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "android.net.conn.CONNECTIVITY_CHANGE");

State state = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
textView.setText(state.name());
Run Code Online (Sandbox Code Playgroud)

如果有人能指出任何有帮助的事情,那将是非常感激的.

UPDATE

似乎Sprint上的HTC Evo不使用APN设置.我通过下载APNDroid并观察它无法正常测试.然后,我制作了一个快速应用程序,将所有APN条目转储到屏幕上.这产生了一个结果,它是为了mms.

查看JuiceDefender运行时的电话信息,我发现GSRP网络正在打开和关闭.这让我相信通过代码可以做到这一点,即使我发现询问同一问题的每一页都表示无法完成.踢球者是他们所说的像APNDroid一样.请有人给我一些见解.

谢谢!

android

44
推荐指数
2
解决办法
9万
查看次数

移动数据无法启动

我问过这个问题,但我没有得到答复.

我使用以下代码打开移动数据(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();}

        }
Run Code Online (Sandbox Code Playgroud)

我称之为:

setMobileDataEnabled(getBaseContext(), true/false);
Run Code Online (Sandbox Code Playgroud)

它正确启用/禁用移动数据,但此代码在双SIM卡设备上无法正常工作.我在三星Dual-SIM上的摩托罗拉Razr D1,D3上进行了测试(现在不记得),但这段代码不起作用.一切正常,应用程序不会崩溃.

我试过"getApplicationContext()"和"this"而不是"getBaseContext()",但没有改变.

我了解到Android并非专为双芯片设备设计,这可能是一个问题,因为我无法定位任何SIM卡,所以我无法找到任何技巧或其他任何"修复"代码,我我对吗?

我可以做些什么来在双芯片设备上打开/关闭移动数据?我把在源代码一看,setMobileDataEnabled是"公共",磨片不应该访问它?

我也找到了IConnectivityManager类,但它不是java扩展,我认为它是.aidl或者什么(不记得了),它可以有用吗?

我不知道该怎么办,我需要帮助.

对不起我的英语不好.

谢谢.

java android

6
推荐指数
1
解决办法
818
查看次数

标签 统计

android ×2

java ×1