Java android SmsManager是否显示已为关闭的号码发送消息?
我试图了解如何导入android.telephony.smsmsmanager将知道sms已成功发送 我正在使用学习指南中的代码Java android SmsManager是否显示已为关闭的号码发送消息?,java,android,sms,smsmanager,Java,Android,Sms,Smsmanager,我试图了解如何导入android.telephony.smsmsmanager将知道sms已成功发送 我正在使用学习指南中的代码 protected void sendSMSMessage() { Log.i("Send SMS", ""); String phoneNo = txtphoneNo.getText().toString(); String message = txtMessage.getText().toString(); t
protected void sendSMSMessage() {
Log.i("Send SMS", "");
String phoneNo = txtphoneNo.getText().toString();
String message = txtMessage.getText().toString();
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, null, null);
Toast.makeText(getApplicationContext(), "SMS sent.",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getApplicationContext(),
"SMS failed, please try again.",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
通常,我知道当我向一个已关闭的号码发送短信时,我不会收到确认邮件已收到的送达报告代码>即使号码已关闭,也显示消息已发送?尝试以下操作:
package com.splash.smsManager;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class SendingSmsWithReport extends Activity {
String sendingSmsStatus = "SEND";
String deliverySmsStatus = "DELIVERED";
PendingIntent send, delivered;
BroadcastReceiver sendReceiver, deliveredRecevier;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
send = PendingIntent.getBroadcast(this, 0,
new Intent(sendingSmsStatus), 0);
delivered = PendingIntent.getBroadcast(this, 0, new Intent(
deliverySmsStatus), 0);
Button sendSmsButton = (Button) findViewById(R.id.button1);
sendSmsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("5556", null, "Hello Welcome to Android", send, delivered);
//5556 is Emulator Number.
}
});
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(sendReceiver);
unregisterReceiver(deliveredRecevier);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
sendReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch(getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "Sms Sent Successfully", Toast.LENGTH_LONG).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(getBaseContext(), "No Serice Found in your Device", Toast.LENGTH_LONG).show();
break;
}
}
};
deliveredRecevier = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch(getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(getBaseContext(), "Sms Successfully Delivered", Toast.LENGTH_LONG).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(getBaseContext(), "Sms not Delivered", Toast.LENGTH_LONG).show();
break;
}
}
};
registerReceiver(sendReceiver, new IntentFilter(sendingSmsStatus));
registerReceiver(deliveredRecevier, new IntentFilter(deliverySmsStatus));
}
}
我的意思是,可能你的手机没电了,当有人打电话给你时,你无法联系到你。你看,Sim卡需要一些费用。你有其他可以共享的文件或你编译的apk吗?我已经编译了我的,没用。我成功地编译了它,但一直崩溃。没有DropBox帐户!在设备或模拟器中测试。如果仿真器中的u r测试意味着LogCat中可用的发送异常。因为应用程序崩溃意味着可能存在异常或错误。我在Emulator中安装的apk文件工作正常。它显示类似“SMS Sent!”的Toast消息。我在Emulator中安装的apk文件工作正常。它显示类似“SMS Sent!”的Toast消息您也可以在“电话操作”下手动签入DDMS/Emulator控件,在“输入号码”编辑框中提供一些号码,在消息中提供Sms文本,然后单击“发送”按钮,Sms将在通知栏中提供…快乐编码!