電話が接続されているワイヤレス ネットワークの SSID が変更されたときに、いくつかのアクションを実行したいと考えています。これは、電話が「非アクティブ」(ロックされているなど) の場合にも機能するはずです。
サービスはこれに適したタイプのアプリケーションですか? Android では、私のサービスがそのようなイベントで呼び出される可能性があると思いますか? どうすればいいですか?
電話が接続されているワイヤレス ネットワークの SSID が変更されたときに、いくつかのアクションを実行したいと考えています。これは、電話が「非アクティブ」(ロックされているなど) の場合にも機能するはずです。
サービスはこれに適したタイプのアプリケーションですか? Android では、私のサービスがそのようなイベントで呼び出される可能性があると思いますか? どうすればいいですか?
WifiManager.NETWORK_STATE_CHANGED_ACTIONをリッスンするBroadcastReceiverを作成し、onReceive 内の追加の WifiManager.EXTRA_BSSID から SSID を取得します。
SSID 処理作業が高価な場合は、サービスにオフロードします (BroadcastReceiver.onReceive のドキュメントを参照してください)。
AndroidManifest.xml は次のようになります。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...>
<!-- Permission to listen for network changes -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
...>
<receiver android:name=".YourBroadcastReceiver" >
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
</application>
</manifest>