• Service-监听手机来电


    public class MonitorPhone extends Activity {
    
    	TelephonyManager tManager;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		//取得TelephoneManager对象
    		tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    		//创建一个通话状态监听器
    		PhoneStateListener listener = new PhoneStateListener(){
    			@Override
    			public 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);
    	}
    }

    mainfest文件

    <?

    xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="crazyit.monitorphone" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="crazyit.monitorphone.MonitorPhone" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>


    TelephonyManager是一个管理手机通讯状态、电话网路信息的服务类,该类提供了一个listen(PhoneStateListener listener,int events)方法来监听通话状态

    执行上面的程序,能够在DDMS的File Explorer面板data/data/crazyit.monitorphone/files文件夹下看到一个phoneList文件,将改文件导入电脑能够看到来电电话信息

    由于我是用真机測试,所以在DDMS下导出文件须要root权限,否则打不开目录

    在DDMS取得打开目录的权限:

    >adb shell

    $ su

    # chmod 755 /data

    # chmod 755 /data/data

    # chmod 755 /data/data/crazyit.monitorphone/

    # chmod 755 /data/data/crazyit.monitorphone/files

  • 相关阅读:
    机器学习:以分析红酒口感为例说明交叉验证的套索模型
    机器学习:分类算法性能指标之ROC曲线
    机器学习:最小二乘法实际应用的一个完整例子
    机器学习:Python中如何使用支持向量机(SVM)算法
    机器学习:python中如何使用朴素贝叶斯算法
    机器学习:Python实现lms中的学习率的退火算法
    机器学习:Python实现最小均方算法(lms)
    @Autowired 与@Resource选择(治好你的强迫症)
    @Resource 进行注入bean的过程
    @Autowired 进行注入bean的过程
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7130228.html
Copyright © 2020-2023  润新知