Başka uygulamaları gizleyebilecek bir proje yazacağım. Araştırma yaptım ve yararlı bir kod buldum ve uygulamanızı gizlemek için iyi çalışıyor. Aşağıdaki kodumu görebilirsiniz:Android'deki diğer uygulamalar nasıl gizlenir?
PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
Ve sorun şu ki, başka uygulamaları nasıl gizleyebilirim bilmiyorum. Çok fazla araştırma yapmaya çalıştım ama hala bir çözüm bulamıyorum. Yani aşağıda benim koduna bakabilirsiniz (ama başka uygulamalar gizlemek için çalışmıyor, ama iyi çalışıyor kendi gizlemek için):
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);
ben componentName için ilk parametre bir paket adı olduğunu biliyoruz Uygulama ve ikinci parametre, saklamak istediğim uygulamanın ana etkinlik adıdır. Fakat her zaman bu parametrelerin her ikisini de başka bir değere değiştirdiğim zaman her zaman kapanmaya zorlanır. Ancak, uygulamamın adını ve ikinci parametreyi uygulamamın ana etkinlik adına paketlemek için ilk parametreyi değiştirirsem, yukarıda gördüğüm ilk kod gibi çalışır.
Ve ben yakın aşağıda benim app kuvveti var bazı günlüğü vardır:
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)
Yani sorun nasıl başka uygulamalar gizleyebilir, yani? Başka bir kod/yöntem/öneri/örnek iyidir. Ve yardımın için minnettarım. Teşekkürler. Bilmiyorum
Köklü aygıtta bunu yapmak için herhangi bir ipucu biliyor musunuz? Eğer yaparsan, bana biraz örnek ver. Her neyse bu cevap için teşekkür ederim. Daha çok şey anlamama yardımcı oluyor. –
@NaraNa: "Köklü aygıtta bunu yapmak için herhangi bir ipucu biliyor musunuz?" - Hayır, üzgünüm. Köklü bir cihazda bir şey yapabildiğiniz için bunun mümkün olduğunu varsayalım, ama spesifik teknikleri bilmiyorum. – CommonsWare
@CommonsWare'dan da bahsetmiştiniz "Ayrıca," kendi başlatıcısında göstermeyen uygulamaları gizleyen bir ana ekran da oluşturabilirsiniz "diyebilirsiniz. Böyle bir şeyle oynamak istiyorum. –