NotificationおよびNotification Managerの使用
17018 ワード
ブロードキャスト受信機がブロードキャストメッセージを受信すると、可視化されたインタフェースを介してブロードキャスト情報を表示することはできない.ここでは,状態提示欄(State Bar)により,放送情報の内容,アイコン,振動などの情報を表示することができる.これは、NotificationコントロールとNotification Managerを使用する必要があります.次に、ステータスプロンプトバーの適用例を説明します.この例では、ブロードキャスト受信機によってメールを受信したブロードキャストメッセージが受信され、サービスがステータスプロンプトバーに通知情報を表示するサービスが開始される.ブロードキャスト受信機:
サービス:
AndroidManifest.xml
NotificationおよびNotification Managerの使用には、次の点に注意してください.
A.ActivityとServicesのみが通知を開くことができ、他のコンポーネントがブロードキャスト受信機を含む場合、直接開くことはできません.システムブロードキャストにメッセージを提示する必要がある場合は、ブロードキャスト受信機でActivityまたはServiceに移行し、通知を開く必要があります.
B.上記の例で設定した通知パラメータに加えて、振動、音声などの他のパラメータがあり、具体的にはSDKドキュメントの説明を参照してください.
- public class MyReciever extends BroadcastReceiver {
-
- Intent i;
-
- @Override
- public void onReceive(Context context, Intent intent) {
- // TODO Auto-generated method stub
- // , Service
- i=new Intent();
- i.setAction("SERVICE_ACTION");
- context.startService(i);
-
- }
-
-
- }
サービス:
- public class Myservice extends Service {
- private NotificationManager mNM;
- private Notification nF;
- private Intent i;
- private PendingIntent pi;
- @Override
- public void onCreate() {
-
- }
-
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- //
- mNM=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
- // , , After
- i=new Intent();
- i.setClass(Myservice.this, After.class);
- pi =PendingIntent.getActivity(Myservice.this, 0, i, 0);
- // 。
- nF=new Notification();
- //
- nF.icon=R.drawable.icon;
- //
- nF.tickerText=" ";
- // ,
- nF.setLatestEventInfo(this, " ", " ", pi);
- //
- mNM.notify(0, nF);
-
- return 0;
- }
-
- @Override
- public void onDestroy() {
- // Cancel the persistent notification.
-
-
- // Tell the user we stopped.
- Toast.makeText(this, "destroy", Toast.LENGTH_SHORT).show();
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- // TODO Auto-generated method stub
- return null;
- }
- }
AndroidManifest.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.bt"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
- <activity android:name=".BroadcastTest"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
-
- </intent-filter>
- </activity>
- //
- <receiver android:name=".MyReciever">
- <intent-filter>
- <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
-
- </intent-filter>
- </receiver>
- //
- <service android:name=".Myservice">
- <intent-filter>
- <action android:name="SERVICE_ACTION"/>
- </intent-filter>
- </service>
- <activity android:name=".After"
- android:label="an">
-
- </activity>
- </application>
- <uses-sdk android:minSdkVersion="8" />
- //
- <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
-
-
-
- </manifest>
NotificationおよびNotification Managerの使用には、次の点に注意してください.
A.ActivityとServicesのみが通知を開くことができ、他のコンポーネントがブロードキャスト受信機を含む場合、直接開くことはできません.システムブロードキャストにメッセージを提示する必要がある場合は、ブロードキャスト受信機でActivityまたはServiceに移行し、通知を開く必要があります.
B.上記の例で設定した通知パラメータに加えて、振動、音声などの他のパラメータがあり、具体的にはSDKドキュメントの説明を参照してください.