Android Hidden App从拨号器开始

时间:2015-07-01 15:23:17

标签: android

我们可以通过编辑清单XML来隐藏启动器中的Android应用程序,但是有没有任何代码片段或示例我们可以隐藏应用程序并通过输入一些代码来启动它,例如#4444# 就像那样。任何方法都可以这样做? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

要从拨号器启动您的应用,您需要做三件事:
1.将接收器添加到AdroidManifest.xml

 <receiver android:name="com.example.HiddedReceiver">
        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
        </intent-filter>
    </receiver>

2。按照xml中的说明创建BroadcastReceiver。它将拦截每个电话号码。您只需要扫描它以获取字符串并执行适当的操作 - 在这种情况下触发意图。

public class HiddenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(android.intent.action.NEW_OUTGOING_CALL)) {
        String resultData = getResultData();
        if (resultData != null) {
            if (resultData.contains("YOURCODE")) {
                setResultData(null); // it wont continue calling that number

                //HERE CREATE your intent

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            }
        }
    }
}    
}

3。要使其正常工作,您需要告诉android您将使用此功能,并在安装时向用户授予permission to process calls

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

我没有测试它,但这个就像一个魅力:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>