2017-08-08 22 views
-3

ブロードキャスト受信者は、新しいメッセージがそのメッセージとその詳細を取得する方法を送信されるたびに、そのような新しい受信メッセージを聴いています。Android:送信メッセージを送信する(送信トレイ)?

public class incomingSms extends BroadcastReceiver 
    { 
     final SmsManager sms = SmsManager.getDefault(); 

     public void onReceive(Context context, Intent intent) { 

      // Retrieves a map of extended data from the intent. 
      final Bundle bundle = intent.getExtras(); 


      try { 

       if (bundle != null) { 

        final Object[] pdusObj = (Object[]) bundle.get("pdus"); 

        for (int i = 0; i < pdusObj.length; i++) { 

         SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); 

         String message = currentMessage.getDisplayMessageBody(); 
         String phoneNumber = currentMessage.getDisplayOriginatingAddress(); 

         Date date = new Date(currentMessage.getTimestampMillis()); 
         String formattedDate = new SimpleDateFormat("MM/dd/yyyy").format(date); 

         long time=date.getTime(); 
         String formattedTime = new SimpleDateFormat("hh:mm:ss").format(time); 

         Toast.makeText(context,"recieved sms "+"senderNum: "+ phoneNumber + ", message: " + message+ " , date:" + formattedDate + ",time: "+formattedTime , Toast.LENGTH_LONG).show(); 



         MyDBHandler db = new MyDBHandler(context); 

         int f_id=1; 
         db.insertDat2(new DataSetGet(f_id,phoneNumber,message,formattedDate,formattedTime)); 
    //     addData(phoneNumber,message,formattedDate,formattedTime); 

        } // end for loop 
       } // bundle is null 

      } catch (Exception e) { 
       Log.e("SmsReceiver", "Exception smsReceiver" +e); 

      } 


      SmsMessage[] msgs = null; 


      if (bundle != null) { 

       Object[] pdus = (Object[]) bundle.get("pdus"); 
       msgs = new SmsMessage[pdus.length]; 

       for (int i=0; i < msgs.length; i++) { 

        msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 

        String no = "SMS from " + msgs[i].getOriginatingAddress() + " : "; 
        String message= msgs[i].getMessageBody().toString(); 
        Toast.makeText(context,"sent message "+"no: "+no+" message: "+ message,Toast.LENGTH_LONG).show(); 
       } 

      } 


     } 

メッセージを送信するときにトーストが表示されません。

  1. 実行中のアプリケーション。
  2. 番号にメッセージを送信します。
  3. トーストは表示されません。
  4. その数
  5. からのメッセージを受け取り、今送信されたメッセージのトーストは、マニフェストファイルに以下を追加し
+2

こんにちは、スタックオーバーフローへようこそ。質問をして質問を更新する方法の詳細については、 の[ask]リンクを参照してください。 –

答えて

0

を表示されます。

<uses-permission android:name="android.permission.READ_SMS"></uses-permission> 

活動ファイルにこのコードを入れてください:

// Create Sent box URI 
Uri sentURI = Uri.parse("content://sms/sent"); 

// List required columns 
String[] reqCols = new String[] { "_id", "address", "body" }; 

// Get Content Resolver object, which will deal with Content Provider 
ContentResolver cr = getContentResolver(); 

// Fetch Sent SMS Message from Built-in Content Provider 
Cursor c = cr.query(sentURI, reqCols, null, null, null); 

このレシーバで受信したすべての送信メッセージを取得します。次に、sqlite databaにメッセージを格納できます。 se。

+0

ありがとう、しかし、これは私が必要なものではありません。私はこの部分をしていました。放送受信機は着信メッセージを聞くために使用されますが、私は送信トレイ、発信メッセージについて質問しています – fatima

+0

@ファッションコードを確認してください。 は が {、受信トレイのメッセージを取得していない送信トレイのメッセージを取得し、それが働いている – dipali

+0

おかげで私はその番号からのメッセージを受け取ったときだけ(!= nullのバンドル)場合にのみ、それはメッセージ – fatima

関連する問題