无法在Android中使用SMSManager发送短信
在我的应用程序中,我不想使用默认的消息发送者。为此,我遵循了以下链接无法在Android中使用SMSManager发送短信,android,sms,sendmessage,Android,Sms,Sendmessage,在我的应用程序中,我不想使用默认的消息发送者。为此,我遵循了以下链接 这个代码也起作用了。但是我从这里发出的信息 代码不会保存在手机的发件箱和收件箱中 我在我的代码中使用短信管理器 SmsManager sms=SmsManager.getDefault(); sms.sendTextMessage(电话号码,空,消息,空,空) 但它不发送短信。请帮助我如何在android中发送短信 -我也试过跟随 PendingEvent sentPI=PendingEvent.getBroadcast(
- 这个代码也起作用了。但是我从这里发出的信息 代码不会保存在手机的发件箱和收件箱中
- 我在我的代码中使用短信管理器 SmsManager sms=SmsManager.getDefault(); sms.sendTextMessage(电话号码,空,消息,空,空)
SMSAPPActivity.java 编辑:
btnSendSMS.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String message = txtMessage.getText().toString();
String[] PhnNoArray = new String[2];
PhnNoArray[0] = "9999999999";
PhnNoArray[1] = "8888888888";
// StringTokenizer st = new StringTokenizer(phoneNo, ",");
smsManager = SmsManager.getDefault();
for (int i = 0; i < PhnNoArray.length; i++) {
smsManager = SmsManager.getDefault();
// this is the function that does all the magic
// sms.sendTextMessage(phoneNumber, null, msg, pi, null);
smsManager.sendTextMessage(PhnNoArray[i], null, message, null,
null);
Toast.makeText(getBaseContext(), "SMS sent : " + i,
Toast.LENGTH_SHORT).show();
}
}
});
btnSendSMS.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
String message=txtMessage.getText().toString();
字符串[]PhnNoArray=新字符串[2];
PhnNoArray[0]=“99999999”;
PhnNoArray[1]=“8888888”;
//StringTokenizer st=新的StringTokenizer(电话号码,“,”);
smsManager=smsmsmanager.getDefault();
for(int i=0;i
请查看编辑并告诉我我做错了什么。tost正在显示,但其他手机无法通过使用此代码接收sms1)将消息添加到已发送而不是发件箱中,因为发件箱包含假定已发送或处于发送状态的消息
2) 当您发送消息时,在“content://sms/senturi
是什么阻止你将它们存储在数据库中?你还尝试了什么
使用下面的代码发送短信
smsManager.sendTextMessage(number, null,desc, null, null);
及
通过使用content://sms/sentURI,您可以将相同的文本消息插入到消息数据库中只需直接发送它…使用
smsmsmanager
。唯一的问题是用户不会知道它。我使用以下代码将短消息发送到多个号码,并将发送的短消息保存在消息中
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:
ContentValues values = new ContentValues();
for (int i = 0; i < MobNumber.size() - 1; i++) {
values.put("address", MobNumber.get(i).toString());// txtPhoneNo.getText().toString());
values.put("body", MessageText.getText().toString());
}
getContentResolver().insert(
Uri.parse("content://sms/sent"), values);
Toast.makeText(getBaseContext(), "SMS 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_NO_SERVICE:
Toast.makeText(getBaseContext(), "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(getBaseContext(), "Null PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(getBaseContext(), "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, 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);
}
private void sendSMS(字符串电话号码、字符串消息){
String SENT=“SMS_SENT”;
String DELIVERED=“SMS_DELIVERED”;
PendingEvent sentPI=PendingEvent.getBroadcast(此,0,新意图(
已发送),0);
PendingEvent deliveredPI=PendingEvent.getBroadcast(此,0,
新意向(已交付),0);
//---短信发送后---
registerReceiver(新广播接收器(){
@凌驾
公共void onReceive(上下文arg0,意图arg1){
开关(getResultCode()){
案例活动。结果\u正常:
ContentValues=新的ContentValues();
对于(int i=0;i
要向多个号码发送消息,我使用了上述功能:
if (MobNumber != null) {
for (int i = 0; i < MobNumber.size(); i++) {
String message = MessageText.getText().toString();
String tempMobileNumber = MobNumber.get(i).toString();
sendSMS(tempMobileNumber, message);
}
if(MobNumber!=null){
对于(int i=0;i
希望这能有所帮助
if (MobNumber != null) {
for (int i = 0; i < MobNumber.size(); i++) {
String message = MessageText.getText().toString();
String tempMobileNumber = MobNumber.get(i).toString();
sendSMS(tempMobileNumber, message);
}
import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.inputmethod.InputMethodManager;
import android.widget.*;
import android.view.View.OnClickListener;
import android.view.*;
public class MainActivity extends Activity implements OnClickListener{
Button click;
EditText txt;
TextView txtvw;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
click = (Button)findViewById(R.id.button);
txt = (EditText)findViewById(R.id.editText);
txtvw = (TextView)findViewById(R.id.textView1);
click.setOnClickListener(this);
}
@Override
public void onClick(View v){
txt.setText("");
v = this.getCurrentFocus();
try{
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("8017891398",null,"Sent from Android",null,null);
}
catch(Exception e){
txtvw.setText("Message not sent!");
}
if(v != null){
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(),0);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
<uses-permission android:name="android.permission.SEND_SMS" />
public static int getNumberOfActiveSim(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
List<SubscriptionInfo> subscriptionInfo = subscriptionManager.getActiveSubscriptionInfoList();
return subscriptionInfo != null ? subscriptionInfo.size() : 0;
}
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if(telephonyManager != null && telephonyManager.getSimState() == TelephonyManager.SIM_STATE_ABSENT){
return 1;
}
return 0;
}