2009-07-14 4 views
2

私はアンドロイドの未読のSMSの数をプログラムで質問することができますか教えてくださいできますか?どのように私はアンドロイドの未読のSMSの数を問い合わせることができます

どのように私はthisリンクのようなSMSの未読数を実装することができます

+0

受け入れ答えは実際に上記の質問を参照してくださいへの答えではありません。適切なためhttp://stackoverflow.com/questions/37186​​87/get-number-of-unread-sms溶液。 – greenoldman

答えて

1

メッセージが到着したときに読むことができるコードスニペットです。

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.gsm.SmsMessage; 
import android.widget.Toast; 

public class SMSReceiver extends BroadcastReceiver 
{ 
    public void onReceive(Context context, Intent intent) 
    { 
     Bundle myBundle = intent.getExtras(); 
     SmsMessage [] messages = null; 
     String strMessage = ""; 

     if (myBundle != null) 
     { 
      Object [] pdus = (Object[]) myBundle.get("pdus"); 
      messages = new SmsMessage[pdus.length]; 

      for (int i = 0; i < messages.length; i++) 
      { 
       messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
       strMessage += "SMS From: " + messages[i].getOriginatingAddress(); 
       strMessage += " : "; 
       strMessage += messages[i].getMessageBody(); 
       strMessage += "\n"; 
      } 

      Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show(); 
     } 
    } 

}

+0

ありがとうございます。しかし、SMSを受けるたびに通知する必要はありません。私は、いくつのSMSが未読で、何通の音声メールが未読であるかを読むことに興味があります。 – n179911

+0

私は理解しますが、到着したすべての新しいメッセージの数を維持するためにこのコードを変更するのは簡単なので、主な活動からそれを照会することができます。 –

+0

ありがとうございます。私はあなたのコードを試しました: mSMSReceiver =新しいSMSReceiver(); \t \tインテントregisterReceiver = registerReceiver(mSMSReceiver、新しいIntentFilter(Intents.SMS_RECEIVED_ACTION)); しかし、エミュレータでSMSを送信してテストすると、onReceive()が呼び出されることはありません。 – n179911

2

API Docsあなたがreceived and unreadであるメッセージを把握するために見ることができるはずという定数を示しました。

This articleは、あなたにいくつかのポインタを与えるかもしれないSmsMessageクラスとやり取りする誰かを示しています。

関連する問題