10 25

监听android的拨号事件(android secret code)

这是个比较冷门的东西,简单的说就是当你在拨号盘输入##xxxx#*#*的时候接到通知,然后可以进行相关操作。

首先能想到的应用就是私密类程序。比如你的程序是没有图标的,用户输入这些暗号后可以进行一些操作,或者进入软件界面。

原理很简单,其实也是一个broastcastReceiver而已,只是action并没有放到Intent的常量中,所以很少有人知道。

还是直接贴代码来的直接。

写一个广播接收器

package zzp.test.calllistener;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

public class Listener extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

Tool.showIntent(intent);

String pwd = intent.getData().getHost();

Intent i = new Intent(context, CalllistenerActivity.class);

i.putExtra(“data”, pwd);

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(i);

}

}

注:用户在拨号盘输入##xxxx#*#*后会发送一个广播

action是android.provider.Telephony.SECRET_CODE

data是 android_secret_code://xxxx

所以我们把data取到后就可以得到用户输入的内容了

然后这里简单的把内容发到activity显示出来(具体怎么用就看你的了)

 

然后部署reciever就行了

<receiver android:name=“Listener”>
    <intent-filter>
        <action android:name=“android.provider.Telephony.SECRET_CODE” />
        <data android:scheme=“android_secret_code” />
    </intent-filter>
</receiver>
完成,这样你就可以在用户僌##xxxx#*#*的时候收到广播了, 中间的XXXX也可以包含*或者#的

下面符上全部代码 源码下载