初学Android,手机管理器之监听手机来电(六十三)
16lz
2021-01-24
下面是一个监听手机来电的例子
注意下面使用到的电话监听器PhoneStateListener
首先在AndroidManifest.xml文件中加入权限
<!-- 添加访问手机状态的权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
package WangLi.Service.MonitorPhone;import java.io.FileNotFoundException;import java.io.OutputStream;import java.io.PrintStream;import java.util.Date;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;public class MonitorPhone extends Activity{TelephonyManager tManager;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);// 取得TelephonyManager对象 tManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);// 创建一个通话状态监听器PhoneStateListener listener = new PhoneStateListener(){@Overridepublic void onCallStateChanged(int state, String incomingNumber){switch (state){// 无任何状态case TelephonyManager.CALL_STATE_IDLE:break;case TelephonyManager.CALL_STATE_OFFHOOK:break;// 来电铃响时case TelephonyManager.CALL_STATE_RINGING:OutputStream os = null;try{os = openFileOutput("phoneList", MODE_APPEND);}catch (FileNotFoundException e){e.printStackTrace();}PrintStream ps = new PrintStream(os);// 将来电号码记录到文件中ps.println(new Date() + "来电:" + incomingNumber);ps.close();break;default:break;}super.onCallStateChanged(state, incomingNumber);}};//监听电话通话状态的改变 tManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);}}这样就会把来电写入一个文件中,可以在DDMS中查看data->data->WangLi.Service.MonitorPhone->files->phoneList
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)AndroidStaggeredGrid 开源项目
- android ndk第一步使用ndk和Cmake编译.so文件
- android中各种组件的生命周期问题
- 如何查看Android的ANR(无响应)异常
- cocos2dx--cocos2dx3.1.1android环境编译