如何从我的android启动器中隐藏应用程序图标

如何从我的android启动器中隐藏应用程序图标,android,launcher,Android,Launcher,我是android的新手,我根据教程创建了简单的启动器 我正在listview appdetails中显示所有应用程序(应用程序标签、图标、软件包) 我想要隐藏我想要的应用程序图标 我想躲起来 但我无法理解如何获取其他应用程序的组件名称 private void addClickListener() { list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override

我是android的新手,我根据教程创建了简单的启动器 我正在listview appdetails中显示所有应用程序(应用程序标签、图标、软件包)

我想要隐藏我想要的应用程序图标

我想躲起来 但我无法理解如何获取其他应用程序的组件名称

private void addClickListener() {
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> av, View v, int pos,
                long id) {

            ComponentName componentName = new ComponentName(apps.get(pos).name.toString());, apps.get(pos).name.toString());.LauncherActivity);
         manager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
            /*Intent i = manager.getLaunchIntentForPackage(apps.get(pos).name.toString());
            AppsListActivity.this.startActivity(i);*/
        }
    });
private void addClickListener(){
list.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共空间和MClick(AdapterView av、View v、int pos、,
长id){
ComponentName ComponentName=新组件名(apps.get(pos.name.toString());,apps.get(pos.name.toString());.LauncherActivity);
manager.setComponentEnabledSetting(componentName,PackageManager.COMPONENT\u ENABLED\u STATE\u DISABLED,PackageManager.DONT\u KILL\u APP);
/*Intent i=manager.getLaunchIntentForPackage(apps.get(pos.name.toString());
应用稳定性。这。启动性(i)*/
}
});
这是我试过但不起作用的代码

请告诉我我做错了什么,我该怎么做

请提前付款

编辑




您可以通过
PackageManager.setComponentEnabledSetting()
禁用组件,这将产生从启动器中删除组件的效果

列出Android中的组件名称:

下面是获取Android上安装的活动/应用程序列表的代码

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
final List packageList = context.getPackageManager().queryIntentActivities( mainIntent, 0);
您可以从packageList获取组件名称

:

特定应用程序组件的标识符(
活动
服务
BroadcastReceiver
,或
ContentProvider
)可用。两件 在这里封装的信息的数量是识别 组件:它所在的包(一个字符串)和类(一个 字符串)该包内的名称

在AndroidManifest.xml中设置权限

<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE>
尝试以下代码:

PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
或者试试这个:

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);
注意:在下次重新启动之前,图标可能不会消失。
因此,重新启动您的设备并查看应用效果!

这是您的自定义启动器?如果是,则在项目上单击项目位置,只需将appicon和setvisibility的imageview充气即可,或者invisible@AnjaliTripathi是的,它是一个自定义启动器,它是一个所有应用程序数据尾的列表视图…我想从列表视图中隐藏应用程序…我必须创建ListView中的复选框单击ImageView_image=(ImageView)view.findViewById(R.id.ImageView);_image.stevisibility(view.Invisible)上的此行你明白我的意思了吗?你能简单解释一下吗..这样我就实现了manager是PackageManager的代码如何获取其他应用程序的组件名你能告诉我应用程序的组件名是什么吗:java.lang.SecurityException:权限拒绝:尝试将组件状态从pid=742、uid=10088、包uid=10097更改–@user3825086您可以发布清单吗。请注意,上述权限不供第三方应用程序使用。Sir getComponentName();如果使用getComponentName()如何获取其他名称的组件名称;它不会隐藏我选择的其他应用程序我已经尝试过了,但当我单击…01-20 12:15:29.671:E/AndroidRuntime(742):java.lang.SecurityException:权限拒绝:尝试更改组件状态,从pid=742,uid=10088,包uid=10097
PackageManager p = getPackageManager();
p.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
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);