2012-03-03 75 views
2

我需要Android短信应用程序的帮助。我从我的android应用程序发送消息给手机号码。我需要检查消息是否已从我的应用程序中以该移动号码的INBOX传送。我需要检查发送给手机号码的消息是否已发送。 IE浏览器。 Desitnation匹配。如何从android应用程序访问INBOX消息。请在这个问题上指导我。如果有人帮助我以示例工作为例,这将非常有帮助。从Android应用程序访问收件箱消息

在此先感谢。

回答

1

如何从Android应用程序访问INBOX messagr,答案是低于,

Uri uri = Uri.parse("content://sms/inbox"); 
Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); 
while (cursor.moveToNext()) 
{ 
    // Retrieve sms 
    // see column "address" for comparing 

    // Then update the sms and set the column "read" to 1 
} 
0

试试这个

public static final Uri SMS_INBOX_CONTENT_URI = Uri.parse("content://sms/inbox"); 

Cursor cursor = managedQuery(SMS_INBOX_CONTENT_URI, new String[]{TextSmsColumns.ID, TextSmsColumns.ADDRESS, 
      TextSmsColumns.DATE, TextSmsColumns.BODY}, null, null, TextSmsColumns.DATE + " DESC"); 

    cursor.moveToFirst(); 
    StringBuilder builder = new StringBuilder(); 
    for(int i = 0 ; i < cursor.getCount(); i++) 
    { 
     builder.append("   ID-"+i); 
     String s= " Address: "+cursor.getString(cursor.getColumnIndexOrThrow(TextSmsColumns.ADDRESS)) 
     + " Body: "+cursor.getString(cursor.getColumnIndexOrThrow(TextSmsColumns.BODY)) 
     + " Date: "+cursor.getString(cursor.getColumnIndexOrThrow(TextSmsColumns.DATE)); 
     builder.append(s); 
     cursor.moveToNext(); 
    } 
0

尝试这种方式

在AndroidManifest.xml文件,添加如下因素权限:

android.permission.RECEIVE_SMS

android.permission.SEND_SMS


// Demo source code to sends an SMS and notify status 

private void send(String number, String message) 
{   

// notify when the SMS has been sent 
registerReceiver(new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context arg0, Intent arg1) { 

     switch (getResultCode()) 
     { 
      case Activity.RESULT_OK: 
       Toast.makeText(getBaseContext(), "Sent!", 
         Toast.LENGTH_SHORT).show(); 
       break; 
      case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
       Toast.makeText(getBaseContext(), "GENERIC_FAILURE!", 
         Toast.LENGTH_SHORT).show(); 
       break; 
      case SmsManager.RESULT_ERROR_RADIO_OFF: 
       Toast.makeText(getBaseContext(), "RADIO_OFF!", 
         Toast.LENGTH_SHORT).show(); 
       break; 
      case SmsManager.RESULT_ERROR_NULL_PDU: 
       Toast.makeText(getBaseContext(), "ERROR_NULL_PDU!", 
         Toast.LENGTH_SHORT).show(); 
       break; 
      case SmsManager.RESULT_ERROR_NO_SERVICE: 
       Toast.makeText(getBaseContext(), "ERROR_NO_SERVICE!", 
         Toast.LENGTH_SHORT).show(); 
       break; 
     } 
    } 
}, new IntentFilter("SMS_SENT")); 

// notify when the SMS has been delivered 

registerReceiver(new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context arg1, Intent arg2) { 
     switch (getResultCode()) 
     { 
      case Activity.RESULT_CANCELED: 
       Toast.makeText(getBaseContext(), "Not delivered", 
         Toast.LENGTH_SHORT).show(); 
       break; 
      case Activity.RESULT_OK: 
       Toast.makeText(getBaseContext(), "Delivered", 
         Toast.LENGTH_SHORT).show(); 
       break;      
     } 
    } 
}, new IntentFilter("SMS_DELIVERED"));   



PendingIntent sentPendingIntent = PendingIntent.getBroadcast(this, 0, 
    new Intent("SMS_SENT"), 0); 

PendingIntent deliveredPendingIntent = PendingIntent.getBroadcast(this, 0, 
    new Intent("SMS_DELIVERED"), 0); 

SmsManager smsManager = SmsManager.getDefault(); 

smsManager.sendTextMessage(number, null, message, sentPendingIntent,  deliveredPendingIntent);   
} 
相关问题