0
我需要从我的应用程序中打开SMS应用程序,使用户可以发送一个信息,我需要得到它,甚至发送或没有消息的状态打开SMS应用。可能吗?Android的 - 与广播接收器
我知道如何定义广播接收机以编程方式发送邮件,但可以使用SMS的应用做呢?
谢谢!
我需要从我的应用程序中打开SMS应用程序,使用户可以发送一个信息,我需要得到它,甚至发送或没有消息的状态打开SMS应用。可能吗?Android的 - 与广播接收器
我知道如何定义广播接收机以编程方式发送邮件,但可以使用SMS的应用做呢?
谢谢!
您可以发送味精编程
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent!",Toast.LENGTH_LONG).show();
短信接收器
公共类SmsReceiver扩展广播接收器{
public static final String SMS_EXTRA_NAME = "pdus";
public static final String SMS_URI = "content://sms";
public void onReceive(Context context, Intent intent)
{
// Get SMS map from Intent
Bundle extras = intent.getExtras();
if (extras != null)
{
// Get received SMS array
Object[] smsExtra = (Object[]) extras.get(SMS_EXTRA_NAME);
for (int i = 0; i < smsExtra.length; ++i)
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
if(IsBlackListNumber(context,sms)){
this.abortBroadcast();
// Toast.makeText(context, "BlackList", Toast.LENGTH_SHORT).show();
}
else{
//Toast.makeText(context, "No BlackList", Toast.LENGTH_SHORT).show();
}
}
}
// WARNING!!!
// If you uncomment next line then received SMS will not be put to incoming.
// Be careful!
// this.abortBroadcast();
}
private boolean IsBlackListNumber(Context context, SmsMessage sms){
boolean isExist = false;
ContactInfoDataSource datasource = new ContactInfoDataSource(context);
datasource.read();
if(datasource.IsBlackListNumber(sms.getOriginatingAddress())){
SmsInfoEnt smsInfoEnt = new SmsInfoEnt();
smsInfoEnt.setMessage(sms.getMessageBody());
smsInfoEnt.setName(datasource.GetName(sms.getOriginatingAddress()));
smsInfoEnt.setPhoneNo(sms.getOriginatingAddress());
SmsInfoDataSource Smsdatasource = new SmsInfoDataSource(context);
Smsdatasource.open();
Smsdatasource.AddBlockSMS(smsInfoEnt);
Smsdatasource.close();
isExist = true;
}
datasource.close();
return isExist;
}
}
是的,我知道。但我需要用短信应用程序发送它,而不是编程。不管怎么说,还是要谢谢你。 – cheloperel
为什么你需要使用SMS的应用做呢? – cYrixmorten
因为我需要允许用户选择一个联系人。我会用已经写好但没有接收器的meesage打开短信应用程序。 – cheloperel
我看到..以及棘手的部分是获得在这种情况下,短信的状态。如果你想使自己的活动,能够选择一个联系人,将有可能获得发送和传递回调再加上如果发生错误。但是,如果您拨打另一个短信应用程序,则无法保证收听这些信息的广播。 – cYrixmorten