创建一个新工程LearnSendSMS

发短信部分代码

androidManifest.xml中添加发送短信的权限代码

<uses-permission android:name="android.permission.WRITE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />

Activity_main.xml代码如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"  android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"  android:paddingRight="@dimen/activity_horizontal_margin"  android:paddingTop="@dimen/activity_vertical_margin"  android:background="#ffcecbff"  android:orientation="vertical"  android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">  <TextView  android:id="@+id/textView"  android:text="写一个新消息"  android:layout_gravity="center_horizontal"  android:layout_width="wrap_content"  android:layout_height="wrap_content" />  <TextView  android:id="@+id/textViewPhoneNumber"  android:text="电话号码"  android:layout_width="wrap_content"  android:layout_height="wrap_content" />  <EditText  android:id="@+id/editTextPhoneNo"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:inputType="phone"  android:hint="输入电话号码如:13959556666" />  <TextView  android:id="@+id/textViewMessage"  android:text="短信内容"  android:layout_width="wrap_content"  android:layout_height="wrap_content" />  <EditText  android:id="@+id/editTextSMS"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:inputType="textMultiLine"  android:hint="请输入要发送的短信内容"  android:text="测试发送的短信内容" />  <Button  android:layout_gravity="center_horizontal"  android:id="@+id/btnSendSMS"  android:text="发送"  android:layout_width="wrap_content"  android:layout_height="wrap_content" /> </LinearLayout>

MainActivity.java的代码
package com.czg.com.learnsendsms; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity {  Button sendSmsBtn;  EditText toPhoneNumber;  EditText smsMessageET;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  sendSmsBtn = (Button) findViewById(R.id.btnSendSMS);  toPhoneNumber = (EditText) findViewById(R.id.editTextPhoneNo);  smsMessageET = (EditText) findViewById(R.id.editTextSMS);  sendSmsBtn.setOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View v) {  sendSms();  }  });  }  private void sendSms() {  String toPhone = toPhoneNumber.getText().toString();  String smsMessage = smsMessageET.getText().toString();  try {  SmsManager smsManager = SmsManager.getDefault();  smsManager.sendTextMessage(toPhone, null, smsMessage, null, null);  Toast.makeText(this, "短信已发送", Toast.LENGTH_LONG).show();  } catch (Exception e) {  e.printStackTrace();  }  } }

收短信部分代码

创建一个SmsBroadcastReceiver广播接收器用于接收系统发出收到短信的广播
SmsBroadcastReceiver.java
package com.czg.com.learnsendsms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by Administrator on 2016/1/22. */ public class SmsBroadcastReceiver extends BroadcastReceiver {  public static final String SMS_BUNDLE = "pdus";  @Override  public void onReceive(Context context, Intent intent) {  Bundle intentExtras = intent.getExtras();  if(intentExtras != null) {  Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);  String smsMessageStr = "";  for(int i = 0; i < sms.length; i++) {  SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);  String smsBody = smsMessage.getMessageBody().toString();  String address = smsMessage.getOriginatingAddress();  long timeMillis = smsMessage.getTimestampMillis();  Date date = new Date(timeMillis);  SimpleDateFormat format = new SimpleDateFormat("dd/MM/yy");  String dateText = format.format(date);  smsMessageStr += address + " at " + "\t" + dateText + "\n";  smsMessageStr += smsBody + "\n";  }  Toast.makeText(context, smsMessageStr, Toast.LENGTH_SHORT).show();  }  } }

androidManifest.xml中添加收短信的权限代码

<uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" />

androidManifest.xml中注册广播接收器

<receiver android:name=".SmsBroadcastReceiver"  android:exported="true" >  <intent-filter android:priority="998" >  <action android:name="android.provider.Telephony.SMS_RECEIVED" />  </intent-filter> </receiver>

源码下载:https://yunpan.cn/crxPCNjHsDY6G 访问密码 28ec

更多相关文章

  1. Android(安卓)NotificationListenerService监听获取通知栏通知和
  2. Android(安卓)简单的照相机程序
  3. Android下载后自动安装
  4. Android读取文件时,由byte转成String字符串时出现乱码
  5. android动画效果_图片闪烁
  6. 删除Android包
  7. android mediaPlayer error (-38,0) 解决方法
  8. Android实现简单实用的搜索框
  9. Android简易实战教程--第四话《最简单的短信发送器》

随机推荐

  1. Android(安卓)的动作、广播、类别等标识
  2. Android(安卓)Instrument自动测试:Wifi_se
  3. Android Jetpack Compose - Button
  4. Android文字转语音TTS离线程序
  5. android自带的base64编码
  6. 记View越界绘制
  7. Android Studio插件爆红,Plugin Error :
  8. Android使用videoview播放res/raw下的视
  9. android 绘画网格图片
  10. Android自定义对话框去掉白色边框