Notificationの高度なテクニック

2991 ワード

  • Notificationというクラスを観察すると、私たちが使ったことのない属性がたくさんあることがわかります.まずsoundという属性を見てみましょう.通知が発行されたときにオーディオを再生することができ、ユーザーに通知が来たことをよりよく伝えることができます.soundという属性はUriオブジェクトであるため,オーディオファイルを指定する際にはまずオーディオファイルに対応するURIを取得する必要がある.例えば、私たちの携帯電話/system/media/audio/ringtonesディレクトリの下にBasic_があります.tone.oggオーディオファイルは、コードでこのように指定できます:
  •                 Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
                    notification.sound = soundUri;
     
  • オーディオの再生が許可されているほか、通知が来たときに携帯電話を振動させることもできます.vibrateという属性を使用しています.携帯電話の静止と振動の時間をミリ秒単位で設定するための長い配列です.下付き0の値は携帯電話が静止している時間を表し、下付き1の値は携帯電話の振動の時間を表し、下付き2の値は携帯電話が静止している時間を表す.だから、携帯電話が通知が来たときにすぐに1秒振動して、それから1秒静止して、1秒振動したいなら、コードは
  • と書くことができます.
                    long[] vibrates = {0, 1000, 1000, 1000};
                    notification.vibrate = vibrates;
    しかし、携帯電話の振動を制御するには権限を宣言する必要があります.AndroidManifestを編集しなければなりませんxmlファイル、次の宣言を追加します.
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.notificationtest"     android:versionCode="1"     android:versionName="1.0" >     ……     <uses-permission android:name="android.permission.VIBRATE" />     …… </manifest>
  • 現在の携帯電話は基本的にLEDランプを前置しており、電話に出ていないかメールを読んでいない場合、携帯電話がロックされている場合、LEDランプが点滅し続け、ユーザーに確認するように注意しています.この効果は、ledARGB、ledOnMS、ledOffMS、flagsのいくつかのプロパティを使用して実現できます.ledARGBはLEDランプの色を制御するために使用され、一般的に赤緑青の3色から選択できます.ledOnMSは、ミリ秒単位でLEDが点灯する時間を指定します.ledOffMSは、LEDランプが暗い時間を指定するために使用されます.ミリ秒単位です.flagsは、LEDランプを表示するオプションを含む通知のいくつかの動作を指定するために使用することができる.したがって、通知が来た場合、LEDランプが緑色のランプで点滅する効果を実現するには、
  • と書くことができる.
                    notification.ledARGB = Color.GREEN;
                    notification.ledOnMS = 1000;
                    notification.ledOffMS = 1000;
                    notification.flags = Notification.FLAG_SHOW_LIGHTS;
    もちろん、そんなに複雑な設定をしたくない場合は、通知のデフォルト効果を直接使用することもできます.現在の携帯電話の環境に応じて、どのベルを再生するか、どのように振動するかを決定します.
                    notification.defaults = Notification.DEFAULT_ALL;
    なお、これらの高度なテクニックは、携帯電話で動作してこそ効果が得られ、シミュレータは振動やLEDランプの点滅などの機能を示すことはできません.