我开发了一个Android应用程序,允许用户更改一些系统设置。一旦用户配置了该应用程序,就没有必要再启动它了。这就是为什么许多用户要求我添加一个从启动器隐藏应用程序的选项。
我测试了this post中提供的解决方案。
我是这样隐藏应用程序的:
我这样取消隐藏应用程序:
只要我不给我的应用程序添加权限,它就能很好地运行。例如,我使用以下权限:
当我将此权限添加到清单中时,应用程序不会从启动器中消失。当我点击它时,它会在我的应用程序页面上启动设置应用程序,如下面的gif所示:
所以我的问题是:当应用程序请求权限时,是否有一种方法可以隐藏应用程序不出现在启动器中?
我测试了this post中提供的解决方案。
我是这样隐藏应用程序的:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class); // activity which is first time open in manifiest file which is declare as <category android:name="android.intent.category.LAUNCHER" />
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
我这样取消隐藏应用程序:
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName(this, com.apps.MainActivity.class);
p.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
只要我不给我的应用程序添加权限,它就能很好地运行。例如,我使用以下权限:
<uses-permission android:name="android.permission.SET_WALLPAPER" />
当我将此权限添加到清单中时,应用程序不会从启动器中消失。当我点击它时,它会在我的应用程序页面上启动设置应用程序,如下面的gif所示:
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cannic.apps.hideapptest">
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
所以我的问题是:当应用程序请求权限时,是否有一种方法可以隐藏应用程序不出现在启动器中?