Loading

Android如何做到应用程序图标隐藏,由第三方程序启动

在你App的AndroidManifest.xml中,将启动页做如下修改

<intent-filter>
     <action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>

在第三方程序中如下调用

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.test.app",
           "com.test.app.MainActivity"));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

其中com.test.app为应用程序包名,而com.test.app.MainActivity为你所要启动的第一个Activity,即上面所指的启动页

如果你不知道启动页,或者你的启动页会变化,那么你也可以如下调用

public boolean startApp(String packageName) {
          Intent intent = new Intent(Intent.ACTION_MAIN, null);
          intent.addCategory(Intent.CATEGORY_DEFAULT);
          PackageManager pm = getPackageManager();
          List<ResolveInfo> listInfos = pm.queryIntentActivities(intent, 0);
          String className = null;
          for (ResolveInfo info : listInfos) {
           if (packageName.equals(info.activityInfo.packageName)) {
            className = info.activityInfo.name;
            break;
           }
          }
          if (className != null && className.length() > 0) {
           intent.setComponent(new ComponentName(packageName, className));
           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
             | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
           startActivity(intent);
           return true;
          }
          return false;
         }

 

posted @ 2017-01-03 19:19  辉灬  阅读(8367)  评论(1编辑  收藏  举报