Android 测试背景数据和包数据是否启用

Android 测试背景数据和包数据是否启用,android,networking,Android,Networking,我希望检测用户是否同时启用了背景数据(设置->帐户和同步->背景数据)和数据包数据(设置->无线和网络->移动网络->使用数据包),以便通知用户如何启用它们 这说明了如何测试背景数据,但它已被弃用。建议使用getActiveNetworkInfo(),但这可能会返回WIFI连接,因此如果背景数据已启用或未启用,则不会显示 我没有找到任何关于如何检测数据包数据是否启用的链接。我有一个完全相同的问题,我必须开始悬赏才能得到答案。我损失了三分之一的声誉,但这是值得的 boolean mobileDat

我希望检测用户是否同时启用了背景数据(设置->帐户和同步->背景数据)和数据包数据(设置->无线和网络->移动网络->使用数据包),以便通知用户如何启用它们

这说明了如何测试背景数据,但它已被弃用。建议使用getActiveNetworkInfo(),但这可能会返回WIFI连接,因此如果背景数据已启用或未启用,则不会显示


我没有找到任何关于如何检测数据包数据是否启用的链接。

我有一个完全相同的问题,我必须开始悬赏才能得到答案。我损失了三分之一的声誉,但这是值得的

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上的问题。啊,对了,我没有意识到数据包数据和同步数据是不同的设置。我猜想是两种不同的方式在说同一件事。似乎可以使用与上面相同的方法来检查这一点。我会检查一下,如果我解决了,再给你回复!我找到了这个答案,它似乎回答了你问题的另一部分:谢谢凯文。奇怪的是,我在搜索时没有发现:-)