安卓 获取电话号码并发送短信
2017-02-12 00:40
106 查看
今天写了个小demo,通过设置一个安全号码,并给其发送短信。按照短信内容操作,能执行短信内容的操作。好了,废话不多说。直接进入正题。
预览效果
给主页面设置一个button xml里面写个button 给其设个id 或onClick;这里就不贴代码了。
由于是点击一个button弹出一个对话框,所以在 activity里,如果你设的是id,你就先需要得到id,然后给其设监听事件。如果你设的是onClick,就给他写个点击事件方法。本人写的是onClick,代码如下:
有一点就是因为要给安全号码发送短信,还要给安全号码返回指令,所以为了避免之后要判断是否是安全号码接收的指令,所以可以先用SharedPreferences把安全号码先存起来。别忘了配置发送短信的权限。
接下来就是接收短信了,代码如下:
接收短信时需根据短信内容判断,如果他回复的是一,便执行关机操作……由于类似就做了响铃的操作,响铃操作需要在res下面建个raw文件,把音频文件放进去。值得注意的是,现在手机的权限越来越高了,可能执行不了这个操作,这是正常的,可以将手机root,便能解决这个问题。
预览效果
给主页面设置一个button xml里面写个button 给其设个id 或onClick;这里就不贴代码了。
由于是点击一个button弹出一个对话框,所以在 activity里,如果你设的是id,你就先需要得到id,然后给其设监听事件。如果你设的是onClick,就给他写个点击事件方法。本人写的是onClick,代码如下:
package com.example.an_phonenumberdemo; import android.app.PendingIntent; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import org.w3c.dom.Text; import java.util.List; public class MainActivity extends AppCompatActivity { private SharedPreferences.Editor editor; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText= new EditText(MainActivity.this); //得到SharedPreferences SharedPreferences sp=getSharedPreferences("save", Context.MODE_PRIVATE); editor = sp.edit(); //取 String phone=sp.getString("number",""); editText.setText(phone); } public void savenumber(View view){ //显示对话框 AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("提示"); builder.setMessage("请输入安全号码:"); //设置编辑框 builder.setView(editText); builder.setPositiveButton("保存", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // 获取编辑框的号码 String number= editText.getText().toString(); editor.putString("number",number); // //提交 editor.commit(); SmsManager smsManager=SmsManager.getDefault(); String manage="请执行以下操作:1:关机,2:响铃"; List<String> list=smsManager.divideMessage(manage); for (String text:list){ PendingIntent pi=PendingIntent.getBroadcast(MainActivity.this,0,new Intent(),0); smsManager.sendTextMessage(editText.getText().toString(),null,text,pi,null); } Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT).show(); } });{ builder.show(); } } }
有一点就是因为要给安全号码发送短信,还要给安全号码返回指令,所以为了避免之后要判断是否是安全号码接收的指令,所以可以先用SharedPreferences把安全号码先存起来。别忘了配置发送短信的权限。
<!--发送短信的权限--> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
接下来就是接收短信了,代码如下:
package com.example.an_phonenumberdemo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SmsMessage; import android.util.Log; import android.widget.TextView; public class Receive extends BroadcastReceiver { private String body; @Override public void onReceive(Context context, Intent intent) { if("android.provider.Telephony.SMS_RECEIVED".equals(intent.getAction())) { Log.i("test", "有短信进来了"); //获取短信的内容 Bundle bundle = intent.getExtras(); Object[] objects = (Object[]) bundle.get("pdus"); SmsMessage[] smsMessages = new SmsMessage[objects.length]; for (int i = 0; i < objects.length; i++) { smsMessages[i] = SmsMessage.createFromPdu((byte[]) objects[i]); } for (SmsMessage message : smsMessages) { String address = message.getDisplayOriginatingAddress(); body = message.getDisplayMessageBody(); Log.i("test", "发送人:" + address); Log.i("test", "内容:" + body); if(body.equals("2")){ MediaPlayer mediaPlayer=MediaPlayer.create(context,R.raw.pianai); mediaPlayer.setLooping(true); mediaPlayer.start(); } } } } }
接收短信时需根据短信内容判断,如果他回复的是一,便执行关机操作……由于类似就做了响铃的操作,响铃操作需要在res下面建个raw文件,把音频文件放进去。值得注意的是,现在手机的权限越来越高了,可能执行不了这个操作,这是正常的,可以将手机root,便能解决这个问题。
相关文章推荐
- 安卓学习之获取QQ登录账户和密码并发送短信
- 安卓短信验证码的获取
- python实现发送和获取手机短信验证码
- 发送手机短信获取验证码功能
- Android - xml动画,识别手势动作,代码抽取,获取手机SIM卡串号,获取联系人数据,开机广播,发送/解析短信,报警音乐
- 发送手机短信获取验证码功能
- 安卓项目SimpleQQ——发送短信分享软件
- 发送手机短信获取验证码功能
- python获取linux系统信息、性能阀值、短信网关发送的例子
- 短信发送和存入发件箱-区分长短信-发送状态监听获取数据
- python实现发送和获取手机短信验证码
- 安卓ContentObserver模式获取短信用正则自动填充验证码
- 技术回顾:Android 如何在Service获取最佳坐标以及发送短信到指定的手机
- ios开发:获取手机通讯录、发送短信
- 安卓短信功能全解:调用系统短信功能发送短信、彩信,使用SmsManager发送短信,并监听发送短信的投递情况,使用广播接收器监听接收的短信。
- JS获取短信验证码button的定时重新发送
- Android监听SMS发送状态并获取短信服务中心号码
- 安卓简单发送短信案例-qq盗号案例
- 安卓实现简单的发送短信功能
- API获取天气预报,以及使用飞信API,给好友发送短信