2014-01-14 42 views
1

我正在開發一個Android應用程序,它可以在沒有root權限的情況下管理手機上安裝的應用程序。Android從根目錄的菜單中隱藏/禁用應用程序

我已經完成了大部分功能,但我被困在一個功能上。

我必須隱藏用戶從菜單中選擇的特定應用程序。但我無法實現,但我嘗試。

我已經嘗試過

PackageManager p = getPackageManager(); 
p.setApplicationEnabledSetting(packageNameOfApp, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 

但我得到一個權限被拒絕的錯誤...我怎樣才能克服此問題,請幫助

這是我的清單權限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.READ_SMS" /> 
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 

我已經嘗試加入

android:sharedUserId="android.uid.system" 

標籤的體現,但看起來像這樣

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

我很抱歉,張貼等長的問題,但我試圖將盡可能詳細givesout錯誤。

任何幫助將不勝感激。

感謝

+0

你想讓它隱藏的地方? –

回答

2

看看爲CHANGE_COMPONENT_ENABLED_STATE標誌Android清單權限的文檔,並注意下面的語句:

不爲第三方應用。

據我所知,共享系統用戶ID會違反操作系統提供的大部分安全性。

還有另一種解決方案:您可能使用了運行代替OEM/Google啓動器的啓動器應用程序(Apex,Nova Launcher)。這些應用程序提供他們自己的應用程序列表,並允許隱藏應用程序而不禁用它們。很明顯,這不是你想要做的,但是創建一個自定義啓動程序並維護你自己的應用程序列表可能是最接近你沒有root權限的。

+0

謝謝,看起來像根權限的路要走。 – HelloWorld94

+0

@ HelloWorld94如果這回答了你的問題,你能將它標記爲答案嗎?這將相信我的聲譽,並使其他遇到同樣問題的用戶更容易找到答案。 – hunt

相關問題