2009-07-14 8 views
4

Je me demandais si quelqu'un savait quelque chose au sujet de la programmation par SMS de la carte SIM de votre téléphone sur une plate-forme Android. Je voudrais écrire un programme qui vous permet d'enregistrer des messages individuels ou des fils entiers sur la carte SD, mais après avoir regardé un peu, j'ai découvert que google a décidé de sortir cette API de l'actuel sdk android. J'ai vu dans quelques endroits qu'il y avait des apis cachés pour cela, mais personne ne savait ce qu'ils étaient ni comment les utiliser.Récupérer les messages SMS de la carte SIM avec android

Répondre

3

Voici un extrait de code qui vous permet de lire les messages.

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(); 
        } 
       }     
      }    
     } 
    } 
} 
Questions connexes