2017-11-20 27 views
-2

一部のデバイス(デバイスにはルートデバイスがある場合とない場合があります)には、Wi-Fiおよびモバイルデータを制限するオプションがあります。
デバイスでインターネット接続が制限されていることをプログラムで確認する方法を教えてください。私utilsのクラスのうち制限付きモバイルデータをプログラムで検出する方法はありますか?

+4

[Androidのアプリケーション背景データの使用状況を取得する方法](https://stackoverflow.com/questions/17802374/how-to-get-any-application-background-data-usage-アンドロイドの状態で) –

+1

@JakubGabčoあなたは彼がまさにステータスを望むならあなたは正しい。これはルートアクセスでのみ可能です。しかし私の答えで見ることができるようにオンラインチェックが可能です –

+0

@ JakubGabčoはあなたの入力に感謝しますが、私の場合、デバイスは根っこになるかもしれないし、そうでないかもしれない、共通の解決策を探しています。 – Sanal

答えて

-2

/** 
    * Check if the device is connected to the internet. 
    * 
    * @param context the application context 
    * @return boolean if device is online 
    */ 
    public static boolean isOnline(Context context) { 
      ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
      return networkInfo != null && networkInfo.isConnected(); 
    } 

ConnectivityManagerはあなたがバックグラウンドで仕事をするために許可されていないか、インターネットへの接続が許可されていない場合はnullを報告することになっています。

+0

このメソッドは、インターネットのONまたはOFFに基づいてブール値を返します。私はプログラムでインターネットの制限を有効にするかどうかを検出したい。 – Sanal

+0

@Sanalルート&重複なしでは不可能 –