我想从我的应用中隐藏任何应用程序(whatsapp,facebook ...)。我尝试使用自己的应用程序隐藏/取消隐藏列表。它的工作完美。但我想从我的应用程序隐藏另一个应用程序。我尝试使用此代码。
我获得应用包名称&它的活动名称使用此代码。
public void getPackageAndActivityname() {
final PackageManager pm = getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List < ResolveInfo > appList = pm.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));
for (ResolveInfo temp: appList) {
Log.e("HIDEAPP", "package:- " + temp.activityInfo.packageName + " activity name:- " + temp.activityInfo.name);
}
}
使用此包名称&amp;以下方法中的活动名称(例如隐藏UC Brower)。
public void hideApp() {
PackageManager p = getPackageManager();
ComponentName componentName = new ComponentName("com.UCMobile.intl", "com.uc.browser.UCMobileApp"); // ucWebbrowser hide from app list
p.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
}
我的清单文件提出了这个许可。
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
但我得到了这种类型的错误
java.lang.SecurityException: Permission Denial: attempt to change component state from pid=26587, uid=10477, package uid=10426
我指的是这两个链接。 Link 1和Link 2。 但我得到了这种类型的错误。我在摩托罗拉Moto G手机(OS:Kitkat 4.4.4)中运行此应用程序。我该如何解决这个问题?
答案 0 :(得分:2)
我该如何解决这个问题?
第一次启动后,您只能隐藏一次应用程序图标。
否您无法隐藏其他应用的图标。您无法控制更新其他应用的这些设置。
每个Android应用程序在不同的进程和系统中运行,为每个应用程序分配不同的ID,因此您无权访问从另一个进程更新一个进程的设置。如果您的设备已植根,则可以这样做。