2013-12-12 49 views
0

我無法理解PackageManager。對於這個例子,我想隱藏谷歌談話應用程序從默認啓動。任何幫助,將不勝感激:)以編程方式在啓動器中隱藏Android應用程序?

在我的主Activity.java

if (HideMessageButton.isChecked()) { 
      //HideMessageButton.setChecked(true); 
       PackageManager pm = this.getPackageManager(); 
       pm.setComponentEnabledSetting(new ComponentName("com.google.android.talk", 
          "com.google.android.talk.LAUNCHER"), 
         PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
         PackageManager.DONT_KILL_APP); 

      } else { 

       HideMessageButton.setChecked(false); 
      } 
     } 

在我的Manifest.xml

package="com.example.hideapp" 
<activity 
     android:name="com.google.android.talk" 
     android:label="@string/talk" > 
     <intent-filter> 
      <action android:name="com.google.android.talk.MAIN" /> 
      <category android:name="com.google.android.talk.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

我懷疑禁止從您的另一個應用程序的「活動」的可能性。 – JiTHiN

+0

這是一個自定義啓動程序的應用程序?如果是這樣,請不要更改其他應用程序的啓用狀態。用戶切換到其他啓動器後,應始終能夠看到所有應用程序(包含啓動器類別意圖)。請在您的啓動器內部保留隱藏的應用列表。 – ozbek

回答

1

你的論點是錯誤的。
您已將Intent類別設置爲類名稱。

這是new ComponentName(String pkg, String clss)。其中:

  • pkg爲目標包,我不知道,它是什麼,你的情況,這不是在你的AndroidManifest.xml
  • clss部分顯示的是目標類,你的情況com.google.android.talk
+0

好的,這已經有點幫助了。 這裏是package =「com.example.hideapp」 – paintball247

相關問題