2012-03-03 4 views
2

Android SMS 애플리케이션에 도움이 필요합니다. 내 안드로이드 응용 프로그램에서 휴대폰 번호로 메시지를 보내고 있습니다. 내 응용 프로그램에서 해당 휴대 전화 번호의 INBOX로 메시지가 배달되었는지 확인해야합니다. 휴대 전화 번호로 전송 된 메시지가 배달되었는지 확인해야합니다. 예. Desitnation matches. 안드로이드 응용 프로그램에서 INBOX 메시지에 액세스하는 방법. 이 문제에 대해 저를 안내해주십시오. 누군가가 샘플 작업 예제를 도와 주면 큰 도움이 될 것입니다.Android 애플리케이션의받은 편지함에 액세스하기

미리 감사드립니다.

답변

1
안드로이드 응용 프로그램에서받은 편지함의 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

folowing 추가,이 식으로의 AndroidManifest.xml 파일에서

시도이

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

시도 허가 :

(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);   
} 
관련 문제