2

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

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

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

4

1 回答 1

9

我有这个完全相同的问题,我必须开始赏金才能得到答案。花费了我三分之一的声誉,但非常值得。

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
        }

正如我所说,我不能声称知道这一点,我的问题得到了https://stackoverflow.com/users/769265/david-wasser的回答

但这让我付出了代价,所以如果你想接受这个作为答案,我可以开始让我的一些声望点回来!:)

于 2012-10-12T21:44:14.653 回答