我要寫一個可以隱藏其他應用程序的項目。我研究並找到一些有用的代碼,它很適合隱藏我的應用程序。你可以看到我的代碼如下:如何在Android中隱藏其他應用程序?
PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
而問題是,我不知道如何隱藏其他應用程序。我試圖做大量的研究,但我仍然找不到任何解決方案。所以,你可以看看我下面的代碼(但它不工作隱藏另一個應用程序,但要隱瞞我自己的工作以及):
PackageManager p = getPackageManager();
ComponentName com = new ComponentName("com.example.pro", "com.example.pro.classname");
p.setComponentEnabledSetting(com, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
我知道,組件名稱的第一個參數是的包名應用程序,第二個參數是我想要隱藏的應用程序的主要活動名稱。但每次我將這兩個參數都更改爲另一個值時,它總是強制關閉。但是,如果我將第一個參數更改爲我的應用的軟件包名稱,將第二個參數更改爲我的應用的主要活動名稱,則它與我上面顯示的第一個代碼非常相似。
我有一些日誌,我得到了收盤跌破時,我的應用力:
04-01 22:56:32.884 13339-13339/com.example.pro D/AndroidRuntime: Shutting down VM 04-01 22:56:32.884 13339-13339/com.example.pro E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.pro, PID: 13339
java.lang.SecurityException: Permission Denial: attempt to change component state from pid=13339, uid=10613, package uid=10464
at android.os.Parcel.readException(Parcel.java:1540)
at android.os.Parcel.readException(Parcel.java:1493)
at android.content.pm.IPackageManager$Stub$Proxy.setComponentEnabledSetting(IPackageManager.java:4073)
at android.app.ApplicationPackageManager.setComponentEnabledSetting(ApplicationPackageManager.java:1839)
at com.example.pro.MainActivity$1.onClick(MainActivity.java:142)
at android.view.View.performClick(View.java:5191)
at android.view.View$PerformClick.run(View.java:20931)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5944)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
所以問題是,我怎麼能隱藏另一個應用程序?其他任何代碼/方法/建議/示例都很好。我會很感激你的幫助。謝謝。
那麼,你知道任何線索在根源設備上這樣做嗎?如果你這樣做,請給我一些例子。無論如何感謝這個答案。它幫助我理解更多。 –
@NaraNa:「那麼你知道有什麼線索可以根植設備嗎?」 - 不,對不起。我認爲這是可能的,因爲你可以在根植設備上做任何事情,但我不知道具體的技術。 – CommonsWare
@CommonsWare你提到「你也可以創建一個」隱藏「應用程序的主屏幕,只需在自己的啓動器中不顯示它們」你能詳細說明某人可能如何實現這一點。我想玩這樣的東西。 –