2013-03-31 25 views
7

Telefonda kayıtlı bir mesaj kimliği almaya çalıştım. Ama anlayamadım. Benim mevcut kod bu ben sms vücut ve gönderen numara almak By buradaonReceive mesajından ileti dizisi id veya _id'i alınYalnız android

@Override 
public void onReceive(Context context, Intent intent) { 
    String address = ""; 
    String message = ""; 
    String msg_id=""; 
    Bundle extras = intent.getExtras(); 
    if (extras != null) { 
     Object[] smsExtra = (Object[]) extras.get("pdus"); 

     for (int i = 0; i < smsExtra.length; i++) { 
      SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]); 
      message += sms.getMessageBody(); 
      address = sms.getOriginatingAddress(); 
     } 
     sms = new Sms(msg_id,message, address); 
     UploadSms up = new UploadSms(); 
     up.start(); 
     Toast.makeText(context, 
       "SMS Received>>" + message + "From >>" + address, 
       Toast.LENGTH_LONG).show(); 
    } 

} 

olduğunu. Ama android telefondaki her mesaj için benzersiz bir numara olduğunu biliyorum, onu aldım. Ancak, OnReceive yöntemlerinde alınamadı. Teşekkürler

cevap

0

Android uygulama katmanında kullanıcı veri başlığını almak için API bulunmadığından, SMS PDU'sunu (ham PDU biçiminde) ayrıştırmanız gerekecektir. Kısa mesaj tanımlayıcısının Kullanıcı Veri Başlığı (Octet 1) içerisinde bulunduğuna inanıyorum. Lütfen Parsing SMS PDU numaralı gönderiye başvurunuz.

Bu mesajda, kullanıcılardan biri, mesaj parametrelerini ayrıştırmak ve ayıklamak için 'SMSLib' (APACHE Lisansı altında) adıyla ücretsiz bir yazılımdan bahseder. İleti kimliği, org.smslib.Message sınıfındaki getMessageId() - Yöntem yöntemiyle ayıklanabilir.

Bu yardımcı olur umarım.

+0

SMS kimliğini SMSMessage'den nasıl alabilirim? –

İlgili konular