雕·不懒惰 2018-05-08 10:28 采纳率: 40%
浏览 1781
已结题

开机启动,隐藏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
  • 写回答

4条回答 默认 最新

  • 紫风幻雪 2018-05-09 00:55
    关注

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

    评论
  • 心灵实惠 2018-05-09 01:58
    关注


                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    
    评论
  • Dengliang13 2018-05-10 03:32
    关注

    隐式情况下,系统会查找完全符合条件的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);

    评论
  • 淡定的人O 2018-08-12 06:46
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 stm32f103zet6 串口5无法收发数据
  • ¥15 关于C语言使用线程队列实现多线程并发
  • ¥15 这个运行,错误在哪里呀,大家看看吧,教导我
  • ¥15 advanceinstaller对话框设置
  • ¥100 正常上网,内部网页无法打开
  • ¥15 组件库引入并使用在若依框架未展示
  • ¥149 关于#使用python 的Flash Echarts+ajax+mysql动态数据实现饼图#的问题,请各位专家解答!
  • ¥15 RichTextBox中追加文本时报错
  • ¥15 关于c语言的学习问题
  • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本