如何使用BroadcastReceiver在android应用程序(无图标)中启动活动?

如何使用BroadcastReceiver在android应用程序(无图标)中启动活动?,android,broadcastreceiver,Android,Broadcastreceiver,我在我的设备上运行安卓4.4,并试图开发一个隐藏屏幕,只有在从拨号器输入一个键码时才会触发。为此,我将清单文件声明为 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test.hiddenscreen"> <uses-permission android:name="andr

我在我的设备上运行安卓4.4,并试图开发一个隐藏屏幕,只有在从拨号器输入一个键码时才会触发。为此,我将清单文件声明为

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.hiddenscreen">
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme">

    <activity
        android:name=".HiddenInfoScreen"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
            <!--<category android:name="android.intent.category.LAUNCHER" />-->
        </intent-filter>
    </activity>
    <receiver
        android:name=".SecretKeyInputReceiver"
        android:enabled="true"
        android:exported="true">
        <intent-filter android:priority="0">
            <!-- Intent for new outgoing call -->
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
</application>
</manifest>
现在,安装活动后,启动器中没有图标(如预期),但从拨号板拨“00000”时,不会显示活动。是的,我也试过设置其他不同长度的数字,但都不起作用。请帮我做这个。 我还尝试了将图标添加到启动器中,并在活动启动后使用PackageManager删除图标的方法

PackageManager p = getPackageManager();
    p.setComponentEnabledSetting(getComponentName(),
            PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);
但这意味着即使通过钥匙码也无法启动该活动


你的投入将得到重视。我的目标是应用程序运行在Android 3.1+之上,因此使用BootComplete启动应用程序的活动是没有用的。

为什么需要广播你也可以从intent启动。.将该活动标记为Exported你想打开frmo Differ软件包吗?你能分享一个示例吗?你能来stackoverflow聊天吗?抱歉刚才看到了通知。我现在正在聊天。
PackageManager p = getPackageManager();
    p.setComponentEnabledSetting(getComponentName(),
            PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
            PackageManager.DONT_KILL_APP);