gpt4 book ai didi

java - 启用/禁用数据问题

转载 作者:行者123 更新时间:2023-11-30 03:42:24 25 4
gpt4 key购买 nike

我使用此代码在我的应用程序中启用或禁用 Internet 3G 数据。我读了几个关于隐藏反射功能的问题等等,但它在数千部具有非常不同的 android 版本的手机中运行良好(我的应用程序在 PlayStore 中,我没有遇到任何问题)。但我很担心,因为我发现一个人的手机无法做到这一点。让我先展示一下我使用的代码:

 try
{ final ConnectivityManager conman = (ConnectivityManager) MyContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if(conman == null) return false;
Class conmanClass = Class.forName(conman.getClass().getName());
if(conmanClass == null) return false;
Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");
if(iConnectivityManagerField == null) return false;
iConnectivityManagerField.setAccessible(true);
Object iConnectivityManager = iConnectivityManagerField.get(conman);
if(iConnectivityManager == null) return false;
Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName());
if(iConnectivityManagerClass == null) return false;
Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE);
if(setMobileDataEnabledMethod == null) return false;
setMobileDataEnabledMethod.setAccessible(true);
setMobileDataEnabledMethod.invoke(iConnectivityManager, true/false); //Here is where you choose to enable or to disable
return true; //Everything went OK
}catch(Exception e)
{ return false;
}

错误在一行:

Field iConnectivityManagerField = conmanClass.getDeclaredField("mService");

结果是:

java.lang.NoSuchFieldException: mService

该手机是使用 Jelly Bean 4.1.1 的三星 Galaxy SII有任何想法吗?我担心人们开始报告同样的问题。

最佳答案

显然,三星(或者可能是 ROM mod 作者)重写了该类,不再有名为 mService 的数据成员。这完全在他们的权利之内。只要他们的更改不破坏 CTS 涵盖的任何内容,他们就可以对框架类的内部实现做他们想做的事。这就是为什么我和其他 Android 专家告诉开发人员不要像您正在使用的那样依赖脚本小子技巧。

如果“启用或禁用 Internet 3G 数据”对您的应用至关重要,并且您确定这会影响 Samsung Galaxy SII 上的库存 ROM,则需要阻止通过 Play 商店向此类设备分发。

如果“启用或禁用 Internet 3G 数据”对您的应用不是至关重要的,请添加一个更好的异常处理程序来表示“抱歉,此功能不可用”或类似的内容。

关于java - 启用/禁用数据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15521707/

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