Androidアプリケーション開発のメール盗聴器(補足)
ショートメッセージが放送されるほか、Androidには起動、バッテリーの電力量の変化、時間の変化などの放送Intentがたくさんあります.
lバッテリーの変化を受信してIntentを放送し、AndroidManifestにある.xmlファイルの<アプリケーション>
ノードでこのIntentを購読します.
l AndroidManifestで起動放送を受信する.xmlファイルの<アプリケーション>ノードに
このIntentを購読する
通常、BroadcastReceiverオブジェクトのライフサイクルは5秒を超えないため、BroadcastReceiverでは時間のかかる操作はできません.時間のかかる作業を完了する必要がある場合は、ActivityまたはServiceにIntentを送信してActivityまたはServiceで完了できます.
もちろん、BroadcastReceiverが実装されています.必要ないと感じる場合があります.登録済みのBroadcastReceiverをログアウトすることができます.
lバッテリーの変化を受信してIntentを放送し、AndroidManifestにある.xmlファイルの<アプリケーション>
ノードでこのIntentを購読します.
<receiver android:name=".IncomingSMSReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED"/>
</intent-filter>
</receiver>
l AndroidManifestで起動放送を受信する.xmlファイルの<アプリケーション>ノードに
このIntentを購読する
<receiver android:name=".IncomingSMSReceiver">
<intent-filter>
<action android:name=”android.intent.action.BOOT_COMPLETED” />
</intent-filter>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
通常、BroadcastReceiverオブジェクトのライフサイクルは5秒を超えないため、BroadcastReceiverでは時間のかかる操作はできません.時間のかかる作業を完了する必要がある場合は、ActivityまたはServiceにIntentを送信してActivityまたはServiceで完了できます.
public class IncomingSMSReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
// Intent ,
Intent service = new Intent(context, XxxService.class);
context.startService(service);
// Intent Activity , Activity
Intent newIntent = new Intent(context, XxxActivity.class);
context.startActivity(newIntent);
}
}
もちろん、BroadcastReceiverが実装されています.必要ないと感じる場合があります.登録済みのBroadcastReceiverをログアウトすることができます.
unregisterReceiver( BroadcastReceiver receiver) ;