Android APP安裝後不在桌面顯示圖標的應用場景舉例和實現方法

一、開發一個名爲OpenNoIconAPP.apk的主APP,裏面就一個按鈕用於點擊後打開子APP,核心跳轉代碼以下:
java

public void onClick(View view) {

    switch (view.getId()) {

    case R.id.btn_open_app:

         /*

         * Intent intent = getPackageManager().getLaunchIntentForPackage(

         * "com.example.noicontest"); if (intent != null) { //

         * startActivity(intent); } else { 

         * Toast.makeText(getApplicationContext(), "沒有該子APP,請下載安裝",

         * Toast.LENGTH_LONG).show(); }

         */
        Intent intent = new Intent();
        ComponentName cn = new ComponentName("com.example.noiconapp","com.example.noiconapp.MainActivity");
        intent.setComponent(cn);
        intent.setAction("android.intent.action.MAIN");
        try {
            startActivityForResult(intent, RESULT_OK);
        } catch (Exception e) {
            Toast.makeText(this, "沒有該子APP,請下載安裝",Toast.LENGTH_SHORT).show();
        }
        break;
    default:
        break;
    }
}


二、開發名爲NoIconAPP.apk的子APP(用於主APP去打開),該APP主要實如今桌面不顯示圖標。其中要想不顯示桌面圖標只需修改AndroidManifest.xml文件便可。具體以下:android

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="
http://schemas.android.com/apk/res/android
"

package="com.example.noiconapp"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

    android:minSdkVersion="14"

    android:targetSdkVersion="14" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.noiconapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <!-- 要想在桌面不顯示圖標,只需註釋掉APP入口Activity中的下面這句便可,或者把下面的LAUNCHER改爲DEFAULT也行 -->
            <!-- <category android:name="android.intent.category.LAUNCHER" /> -->
        </intent-filter>
    </activity>
</application>
</manifest>


三、上面的設置可讓桌面圖標不顯示的緣由:app

通常狀況下,當咱們的APK在被安裝後,系統會自動建立咱們的APK程序,系統Launcher(系統桌面應用程序)會自動檢測系統已經安裝的應用軟件的包名,而後把這些APP的圖標和名稱解析出來後顯示在應用程序列表裏,一旦咱們像上面那樣設置不顯示APK圖標,則APK程序在運行後只會顯示在「正在運行」的程序列表中,而不會在桌面上顯示圖標和名字。若是隻是設置APP圖標不可見而使用第一種方式(我註釋的代碼)打開APP是不會成功的,由於這樣設置後,包名根本就沒有加載到Launcher,因此經過 getPackageManager().getLaunchIntentForPackage()方法獲得的Intent爲null。this

相關文章
相關標籤/搜索