200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Android手机自动发送短信

Android手机自动发送短信

时间:2020-04-28 07:48:13

相关推荐

Android手机自动发送短信

最近有一个想法,就是如果我此刻不方便接电话,想发一条信息告诉对方。因为是不方便嘛,所以那时再手打好信息发给对方是不现实的。如果我们能预先就写好了信息,不方便接听时手机自动帮我们把信息发给来电的朋友,那就方便多了。怎么实现呢?

首先我声明一下,我说的是Android手机啦,苹果嘛,水果店几块钱一斤的还是买得起的。hehe...

需求分析一下:1、给来电人发信息,要获得来电人的来电号码;

2、让系统发送你编辑好的短信。

获得来电号码,需要用到一个类:ThelephonyManager

TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在应用程序中可以使用这些get方法获取相关数据。

TelephonyManager类的对象可以通过Context.getSystemService(Context.TELEPHONY_SERVICE)方法来获得,需要注意的是有些通讯信息的获取对应用程序的权限有一定的限制,在开发的时候需要为其添加相应的权限。

本程序就用到了TelephonyManager给电话服务增加状态监听器,监听来电,通话,挂断等状态 。

PhoneStateListener,获得当前的电话状态,并获得来电号码;

TelephonyManager tpm; tpm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);//获取电话通讯服务 tpm.listen(new MyPhoneStateListener(),PhoneStateListener.LISTEN_CALL_STATE);//给电话服务增加状态监听器,监听来电,通话,挂断等状态

class MyPhoneStateListener extends PhoneStateListener { @Override public void onCallStateChanged(int state, String incomingNumber) { num = incomingNumber; switch(state) { case TelephonyManager.CALL_STATE_IDLE: //空闲 break; case TelephonyManager.CALL_STATE_RINGING: //来电if(isSendMes){sendMes(); //短信发送}break; case TelephonyManager.CALL_STATE_OFFHOOK: //摘机(正在通话中) break; } } }

incomeNumber就是我们所需要的来电号码;

private void sendMes(){ //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(num, null, text, null, null); }

text是我们要发送的信息。

完成上面的工作之前,要在AndroidManifest.xml加入权限:

<pre name="code" class="html"> <uses-permission android:name="android.permission.SEND_SMS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" />

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。