2

ユーザーがバックグラウンド データ (設定 -> アカウントと同期 -> バックグラウンド データ) とパケット データ (設定 -> ワイヤレスとネットワーク -> モバイル ネットワーク -> パケット データを使用) の両方を有効にしているかどうかを検出して、ユーザーに通知できるようにしたいそれらを有効にする方法。

このリンクには、バックグラウンド データをテストする方法が記載されていますが、推奨されていません。推奨事項には getActiveNetworkInfo() を使用するように記載されていますが、これは WIFI 接続を返す可能性があるため、バックグラウンド データが有効かどうかに関係なく表示されません。

パケット データが有効かどうかを検出する方法に関するリンクが見つかりませんでした。

4

1 に答える 1

9

これとまったく同じ質問があり、答えを得るために報奨金を開始する必要がありました. 評判の 3 分の 1 を犠牲にしましたが、それだけの価値はあります。

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 に答える