我需要Android短信应用程序的帮助。我从我的android应用程序发送消息给手机号码。我需要检查消息是否已从我的应用程序中以该移动号码的INBOX传送。我需要检查发送给手机号码的消息是否已发送。 IE浏览器。 Desitnation匹配。如何从android应用程序访问INBOX消息。请在这个问题上指导我。如果有人帮助我以示例工作为例,这将非常有帮助。从Android应用程序访问收件箱消息
在此先感谢。
我需要Android短信应用程序的帮助。我从我的android应用程序发送消息给手机号码。我需要检查消息是否已从我的应用程序中以该移动号码的INBOX传送。我需要检查发送给手机号码的消息是否已发送。 IE浏览器。 Desitnation匹配。如何从android应用程序访问INBOX消息。请在这个问题上指导我。如果有人帮助我以示例工作为例,这将非常有帮助。从Android应用程序访问收件箱消息
在此先感谢。
如何从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
}
试试这个
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();
}
尝试这种方式
在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);
}