当用户在拨号器中输入# 1234 #等代码时,我需要(如果可能的话)为我的项目添加一项功能。我不确定这是可能的。目前,当我从应用程序文件夹中为我的应用程序共进午餐时,它会启动,但只是为了好玩,我想知道我可以用代码在午餐吗?
答案 0 :(得分:6)
您可以通过拨号程序启动应用程序活动类,但是您的应用程序应该在后台运行。为此你应该实现一个扩展到BroadcastReceiver的类。请遵循此参考代码。
public class Example extends BroadcastReceiver
{
@Override
public void onReceive(Context context, final Intent intent) {
if (intent.getAction().equals(android.intent.action.NEW_OUTGOING_CALL)) {
String phoneNumber = intent.getExtras().getString( android.intent.extra.PHONE_NUMBER );
if(phoneNumber.equals("#1234#")) {
Intent intent1 = new Intent(context , YourActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity(intent1);
}
}
}
}
答案 1 :(得分:1)
Priyank接受的答案是正确的。我只是想在Intent类的代码中指出一些更正
@Override
public void onReceive(Context context, final Intent intent) {
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);
if(phoneNumber.equals("#1234#")){
Intent intent1 = new Intent(context, YourActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
}
}
答案 2 :(得分:0)
@Override
public void onReceive(Context context, final Intent intent) {
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String phoneNumber = intent.getExtras().getString(Intent.EXTRA_PHONE_NUMBER);
if (phoneNumber.equals("#1234#")) {
Intent intent1 = new Intent(context, YourActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
setResultData(null);
}
}
}