Android 测试背景数据和包数据是否启用
我希望检测用户是否同时启用了背景数据(设置->帐户和同步->背景数据)和数据包数据(设置->无线和网络->移动网络->使用数据包),以便通知用户如何启用它们 这说明了如何测试背景数据,但它已被弃用。建议使用getActiveNetworkInfo(),但这可能会返回WIFI连接,因此如果背景数据已启用或未启用,则不会显示Android 测试背景数据和包数据是否启用,android,networking,Android,Networking,我希望检测用户是否同时启用了背景数据(设置->帐户和同步->背景数据)和数据包数据(设置->无线和网络->移动网络->使用数据包),以便通知用户如何启用它们 这说明了如何测试背景数据,但它已被弃用。建议使用getActiveNetworkInfo(),但这可能会返回WIFI连接,因此如果背景数据已启用或未启用,则不会显示 我没有找到任何关于如何检测数据包数据是否启用的链接。我有一个完全相同的问题,我必须开始悬赏才能得到答案。我损失了三分之一的声誉,但这是值得的 boolean mobileDat
我没有找到任何关于如何检测数据包数据是否启用的链接。我有一个完全相同的问题,我必须开始悬赏才能得到答案。我损失了三分之一的声誉,但这是值得的
boolean mobileDataEnabled = false; // Assume disabled
ConnectivityManager cm1 = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
Class cmClass = Class.forName(cm1.getClass().getName());
Method method = cmClass.getDeclaredMethod("getMobileDataEnabled");
method.setAccessible(true); // Make the method callable
// get the setting for "mobile data"
mobileDataEnabled = (Boolean)method.invoke(cm1);
} catch (Exception e) {
// Some problem accessible private API
// TODO do whatever error handling you want here
}
正如我所说,我不能因为知道这一点而获得荣誉,我的问题得到了
但这让我付出了代价,所以如果你想接受这个答案,我可以开始拿回我的一些声誉积分 谢谢!这回答了我问题的一部分。与此同时,我升级到了Jelly Bean,google从同步菜单中删除了背景数据:-/无论如何-我接受了你的回答,因为它解决了我在JB上的问题。啊,对了,我没有意识到数据包数据和同步数据是不同的设置。我猜想是两种不同的方式在说同一件事。似乎可以使用与上面相同的方法来检查这一点。我会检查一下,如果我解决了,再给你回复!我找到了这个答案,它似乎回答了你问题的另一部分:谢谢凯文。奇怪的是,我在搜索时没有发现:-)