如何发送短信并将其显示在已发送的项目中?我的意思是你通过我的应用程序发送短信,并使它看起来我通过默认的短信应用程序发送。
我使用
发送短信private void sendSMS(String phoneNumber, String message)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
//---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(), "SMS Sent", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(getBaseContext(), "Sending Failed.", Toast.LENGTH_SHORT).show();
break;
}
progDialog.dismiss();
txtCustomerNumber.setText("");
txtCustomerNumber.requestFocus();
}
}, new IntentFilter(SENT));
//---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "SMS not delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
如何通过默认短信应用程序显示它?
答案 0 :(得分:0)
如何通过默认短信应用程序显示它?
使用ACTION_SEND
代替SmsManager
,并允许用户选择他们想要的SMS客户端。或者,编写自己的SMS客户端。
没有通用的“默认短信应用”。每个短信应用都可以选择跟踪发送的项目;如果是这样,那些项目将是它发送的内容,因为这些是它将知道的唯一SMS消息。某些SMS应用程序可能会提供某种记录和支持的API来处理已发送的项目。作为Android开源项目一部分的Messenger应用程序不会。
Messenger应用程序有一个未记录且不受支持的内容提供程序。有人可能会在这个问题上引用并引用它。请记住Google just locked down the similarly undocumented and unsupported Gmail content provider。因此,使用这样的未记录和不受支持的API是有风险的业务。