2009-07-14 7 views
4

Android搭載プラットフォーム上でスマートフォンのSIMカードからSMSメッセージをプログラムで取得することについて誰もが知っていたのでしょうか。私は個々のメッセージやスレッド全体をSDカードに保存できるプログラムを作成したいと思いますが、ちょっと見渡した後、Googleが現在のアンドロイドSDKからapiを取り出すことにしました。私はいくつかの場所でこれのために隠されたapisがあることを知ったが、誰も彼らが何であるか、またはそれらを使用する方法を知っていなかった。アンドロイドでSIMカードからSMSメッセージを取得する

答えて

3

メッセージを読むことができるコードスニペットです。

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

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

     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]); 
       from = ""+messages[i].getOriginatingAddress(); 
       body = ""+messages[i].getMessageBody(); 
       inSIM = (messages[i].getIndexOnSim() != -1); 
       if (inSIM) 
       { 
        int status = messages[i].getStatusOnSim(); 
        if (status == SmsManager.STATUS_ON_SIM_UNREAD) 
        { 
         Toast.makeText(context, "Message Unread on SIM: "+from+": "+body, Toast.LENGTH_SHORT).show(); 
        } 
       }     
      }    
     } 
    } 
} 
関連する問題