5

シナリオは、インターネットを使用する Android アプリを開発しています。ビジネスアプリです。会社はすべての従業員にアンドロイド携帯電話を提供します。現在、彼らの要件は、従業員がインターネット アクセスを必要とするビジネス アプリ以外の方法でインターネットを使用することを望まないということです。

つまり、インターネット(wifi、モバイルデータなど)を無効にし、ユーザーがこのアプリを使用している場合にのみインターネットを許可するアプリを開発する必要があります。

これは可能ですか?これを達成する方法は?ネットワーク接続を常にチェックするサービスですか?

どんな助けでも大歓迎です。

アップデート:

接続状態を検出してWifiを無効にするBroadcastRecieverを使用しています。モバイルデータの接続状態を検出するにはどうすればよいですか。つまり、モバイルデータ接続を検出し、それに応じて無効にするインテントフィルターアクションとは何ですか?試してみました

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

4

1 に答える 1

0

これはお勧めできませんが、それでもやりたい場合は、

Internt を使用する各アクティビティの onCreate にこのコードを記述し、

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(true);

そして、そのアクティビティ書き込みの onPause で、

WifiManager wifiManager = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE);
wifiManager.setWifiEnabled(false);

これは GPRS/EDGE/3G の WIFI に対して行うためのもので、同じ方法で機内モードを無効にする必要がある場合があります。

アップデートしてどこからでも

いずれかのアクティビティを終了するたびに 1 つ取り、1 つSharedPreference入れて、各アクティビティのメソッドに毎回入れます。boolean isAppRunning = true in onCreate()False onDestroy()

ここで、アクションをリッスンするブロードキャスト レシーバーを 1 つ作成し、そのレシーバーで SharedPreference 値をチェックしますNETWORK_STATE_CHANGEDonReceive()

SP ブール変数が True の場合は、WIFI を有効にします。false の場合は、アプリが実行されていないことを意味し、WIFI を再びオフに切り替えます。

于 2012-06-09T10:00:01.893 に答える