关于app 隐藏图标的情况,有很多文章在写。我写下自己的感受
看到的最多的情况是:AndroidManifest.xml文件中在入口Activity的intent-filter里去掉<category android:name=”android.intent.category.LAUNCHER” />或者LAUNCHER改为DEFAULT,这样的确可以起到隐藏图标的功能,但是程序也打不开,没法运行了。
还有一种是通过以下的方式隐藏图标:
1 PackageManager packageManager = getPackageManager(); 2 ComponentName componentName = new ComponentName(this, StartActivity.class); 3 int res = packageManager.getComponentEnabledSetting(componentName); 4 if (res == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT 5 || res == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { 6 // 隐藏应用图标 7 packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 8 PackageManager.DONT_KILL_APP); 9 } else { 10 // 显示应用图标 11 packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 12 PackageManager.DONT_KILL_APP); 13 }
不过我用这种方式并没有起作用。我用的是以下的方式:
<activity android:name="tv.huan.xmpp.activity.MessageActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <data android:host="AuthActivity" android:scheme="com.xtt.www" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
最主要是添加这一句:<data android:host="AuthActivity" android:scheme="com.xtt.www" />,这样我们把app的入口Activity申明为由接收隐士的Intent来启动,这样自然也就不会显示图标了。不过需要注意,scheme对大小写敏感,这样我们指定的入口Activity可以响应Uri为com.android.example://AuthActivity的特定 Intent.
时间: 2024-10-26 02:43:07