如何解决如何获取短信的电话号码?
| 如何获得传入的SMS电话号码? 我在此链接中写了“ 0”,但没有任何输出。此外,ѭ0中的Toast消息也不会显示。 这是我使用的那个sms.java
文件。
public class SMS extends Activity {
/** Called when the activity is first created. */
Button btn;
EditText edt1;
EditText edt2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn=(Button) findViewById(R.id.btn1);
edt1=(EditText) findViewById(R.id.edt1);
edt2=(EditText) findViewById(R.id.edt2);
btn.setonClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Todo Auto-generated method stub
String phone=edt1.getText().toString();
String message=edt2.getText().toString();
if (phone.length()>0 && message.length()>0)
sendSMS(phone,message);
else
Toast.makeText(getApplicationContext(),\"Enter the phone_no & message.\",Toast.LENGTH_SHORT).show();
}
});
}
private void sendSMS(String phoneNumber,String message)
{
Intent i1 = new Intent(this,SMS.class);
PendingIntent pi = PendingIntent.getActivity(this,i1,0);
SmsManager SMS1 = SmsManager.getDefault();
SMS1.sendTextMessage(phoneNumber,null,message,pi,null);
}
}
解决方法
使用getOriginatingAddress方法。
,您可以通过以下方式获取传入SMS的电话号码。
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String string = \"\";
String phone = \"\";
if (bundle != null)
{
//---receive the SMS message--
Object[] pdus = (Object[]) bundle.get(\"pdus\");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
phone = msgs[i].getOriginatingAddress(); // Here you can get the phone number of SMS sender.
string += msgs[i].getMessageBody().toString(); // Here you can get the message body.
}
}
重要的是您需要在清单文件中提及权限(即)。在广播接收器类中,您必须在意图过滤器中提到“ 6”。
,设置正确的清单文件设置以接收传入的SMS。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。