这是个比较冷门的东西,简单的说就是当你在拨号盘输入*##xxxx##*的时候接到通知,然后可以进行相关操作。
首先能想到的应用就是私密类程序。比如你的程序是没有图标的,用户输入这些暗号后可以进行一些操作,或者进入软件界面。
原理很简单,其实也是一个broastcastReceiver而已,只是action并没有放到Intent的常量中,所以很少有人知道。
还是直接贴代码来的直接。
写一个广播接收器
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显示出来(具体怎么用就看你的了)
<span style="color: #0000ff;">然后部署reciever就行了</span>
```<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也可以包含*或者#的
下面符上全部代码
<a href="http://veikr.com/assets/wp-content/uploads/2011/10/calllistener.zip">源码下载</a>