0

先生、私のプログラムで私を助けてください。ユーザーがキーワードを含むメッセージを受信した場合、アラームを鳴らす予定です。ユーザーが設定していなくても、アプリケーションにアラーム(目覚まし時計で常に使用されるタイプ)を使用させ、メッセージの受信時に使用されるトーンの代わりに使用させるにはどうすればよいですか。プログラムを実行しようとすると、SMSを受信したときの通知音とデフォルトの着信音の両方が聞こえます。前もって感謝します

for (SmsMessage msg : messages) {
        if (msg.getMessageBody().contains("alert")) {

            Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
             if(alert == null){
                 // alert is null, using backup
                 alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                 if(alert == null){ 
                     // alert backup is null, using 2nd backup
                     alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);               
                 }
             }
             Ringtone r = RingtoneManager.getRingtone(context.getApplicationContext(), alert);
             r.play();
                Toast.makeText(context.getApplicationContext(), "alarm started", Toast.LENGTH_LONG).show();

        }//end if
    }//end for
4

1 に答える 1

1

あなたができる唯一のことは、マニフェストのインテントフィルターの優先度を最大に保つことです。これは、次のようなものです

<receiver android:name="com.missed.reciever.SmsReceiver" >
            <intent-filter android:priority="2147483647" >

これが行うことは、デフォルトおよびAndroidメッセージアプリの前に最初にメッセージを受信し、そのSMSを読んで既読としてマークできることです。

これは基本的に goms のようなアプリケーションが行うことです。

于 2012-12-02T11:53:15.387 に答える