开机启动,隐藏APP图标,安装apk点击打开无响应

入口 android:name=".MainActivity"
android:theme="@style/NoTitleTranslucentTheme">

            <category android:name="android.intent.category.LAUNCHER" />
            <data
                android:host="mainactivity"
                android:scheme="cn.mdisplay.threedplay.toolbar" />

        </intent-filter>
    </activity>

            这是开机广播 public void onReceive(Context context, Intent intent) {

    LogUtil.d("action", intent.getAction());
    if (intent.getAction().equals(ACTION_BOOT)) {

// Intent intent_boot = new Intent(context, MainActivity.class); //显式
// intent_boot.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent_boot);

        Intent it = new Intent(Intent.ACTION_MAIN);
        ComponentName cn = new ComponentName("cn.mdisplay.threedplay.toolbar", "cn.mdisplay.threedplay.toolbar.MainActivity");   //隐式
        it.setComponent(cn);
        Uri uri = Uri.parse("cn.mdisplay.threedplay.toolbar")
        it.setData(uri);
        it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(it);
    }
}
    显示都正常,隐式:在手机系统安装APK时点击打开无法打开APP

把这个加上试试看 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NO_HISTORY);


            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

隐式情况下,系统会查找完全符合条件的Activity去启动,
Intent it = new Intent(Intent.ACTION_MAIN);
ComponentName cn = new ComponentName("cn.mdisplay.threedplay.toolbar", "cn.mdisplay.threedplay.toolbar.MainActivity"); //隐式
it.setComponent(cn);
这一段应该没问题,
Uri uri = Uri.parse("cn.mdisplay.threedplay.toolbar")
it.setData(uri);
这一段你设置的参数与manifest.xml中无法匹配
android:host="mainactivity"
android:scheme="cn.mdisplay.threedplay.toolbar" />
所以系统最终没有找到匹配的Activity,建议先注释掉以下代码再试试,
Uri uri = Uri.parse("cn.mdisplay.threedplay.toolbar")
it.setData(uri);

你首先要确定是否收到了开机广播,目前大部分手机都限制安装的应用接收开机广播,防止应用开机启动。比如小米就不能。如果是厂商定制的话,可以定制系统应用或者加入到对应的白名单。如果是应用开发,你要做好你的应用在很多手机上无法自启动的准备。