android Activity
<category android:name="android.intent.category.LAUNCHER" />
添加此内容后会产生入口icon给用户,点击进入此Activity。例如想用包名启动某个LauncherActivity:
public static boolean openAppByPname(Context context, String pName) {
boolean isOk = false;
try {
Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(pName);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
isOk = true;
} catch (Exception e) {
MyLog.printLog(e);
}
return isOk;
}
但是我不想让用户看见这个入口icon,原因..
1.直接不给Activity设置Launcher,想启动应用直接打开某个Activity好了。例如:
adb shell am start -n com.package/com.package.MainActivity
public static boolean hideLauncherIcon(Context context) {
boolean isOk = false;
try {
PackageManager packageManager = context.getPackageManager();
packageManager.setComponentEnabledSetting(
((Activity) context).getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
isOk = true;
} catch (Exception e) {
MyLog.printLog(e);
}
return isOk;
这个方法我在几个测试机上测试是ok的,说是某些设备上貌似从启设备才长生效果,这个需要再验证下。