我正在创建一个可以向一个收件人发送多条短信(所有文本都相同)的应用。目前,该应用的设置很差,可以同时发送5条消息。
以下是我用来发送5条短信息的内容。是否有更好的方法来发送多条消息,以及将消息存储在用户收件箱中的更好方法?因为一遍又一遍地复制和粘贴相同的东西真的很混乱。谢谢!
public void function1(int id){
String phoneNo = phoneInput.getText().toString();
String sms = textSMS.getText().toString();
try {
Toast.makeText(getApplicationContext(),getString(R.string.sentMessages), Toast.LENGTH_LONG).show();
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
final boolean save = prefs.getBoolean("addvalues", true);
if(save){
ContentValues values = new ContentValues();
values.put("address", phoneNo);
values.put("body", sms);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(),getString(R.string.messageNotSent), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
答案 0 :(得分:1)
暂且不论你的应用程序看起来像垃圾邮件机器人,我就是这样实现的。
使用for
或while
循环可能就是您要找的。 p>
(noSends
是您希望发送消息的次数)
public void sendMultiple(int noSends){
String phoneNo = phoneInput.getText().toString();
String sms = textSMS.getText().toString();
try
{
SmsManager smsManager = SmsManager.getDefault();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
for(int i = noSends; i != 0; i--)
{
smsManager.sendTextMessage(phoneNo, null, sms, null, null);
}
if( prefs.getBoolean("addvalues", true) )
{
ContentValues values = new ContentValues();
values.put("address", phoneNo);
values.put("body", sms);
while(noSends != 0)
{
getContentResolver().insert(Uri.parse("content://sms/sent"), values);
noSends--;
}
}
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),getString(R.string.messageNotSent), Toast.LENGTH_LONG).show();
e.printStackTrace();
{
else
{
Toast.makeText(getApplicationContext(),getString(R.string.sentMessages), Toast.LENGTH_LONG).show();
}
}