android 使能/禁用四大组件pm.setComponentEnabledSetting无效

1人阅读 评论(0) 收藏 举报
分类:

pm.setComponentEnabledSetting无效可能是因为获得pm的context不对,获得pm的context要一一对应,context获得时候的包名类名要与实际禁用掉的包名类名一致,如果需要禁掉多个图标时,需要多个context获得的pm去setComponentEnabledSetting

举例:应用场景为切换用户的时候要求禁用掉桌面某个或多个图标

frameworks\base\packages\SystemUI\src\com\android\systemui\GuestResumeSessionReceiver.java 

//xiaozheng add 
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.app.ActivityManager;

 if (Intent.ACTION_USER_SWITCHED.equals(action)) {
            cancelDialog();
            int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
//xiaozheng add start
Context mActivationContext;
if(userId!=UserHandle.USER_OWNER){
try {

mContext=                                           

                                         context.createPackageContextAsUser("包名", 0,

new UserHandle(ActivityManager.getCurrentUser()));
} catch (NameNotFoundException e) {
Log.i("xiaozheng", "get context error!");
mActivationContext = context;
}
PackageManager pm = mContext.getPackageManager();
ComponentName cn = new ComponentName("包名", 
"类名"); 
pm.setComponentEnabledSetting(cn,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,0);
//xiaozhen add end 
}


查看评论

android 禁用或开启四大组件setComponentEnabledSetting

Android有Activity BroadcastReceiver Service和ContentProvider四个组件。通常这些组件都会配置在AndroidManifest.xml文件中,可以使...
  • linghu_java
  • linghu_java
  • 2015-03-17 15:52:42
  • 3421

Android setComponentEnabledSetting 对应文件

修改的文件为:                 PackageManager pm = mActivity.getPackageManager();                 Compone...
  • kevinx_xu
  • kevinx_xu
  • 2016-12-27 20:41:35
  • 429

setComponentEnabledSetting 的使用

为什么要关闭组件?  在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相...
  • yqda_justdo
  • yqda_justdo
  • 2015-07-29 16:46:01
  • 2720

Andriod 的四大组件及其作用

Android 开发的四大组件分别是:活动(activity),用于表现功能;服务(service),后台运行服务,不提供界面呈现;广播接受者(Broadcast Receive),勇于接收广播;内容...
  • shiretan
  • shiretan
  • 2017-02-13 20:49:11
  • 4492

Android四大组件的介绍

Android 四大组件详细介绍
  • qq_30000411
  • qq_30000411
  • 2016-05-09 19:20:57
  • 1663

Android面试之四大组件简答

Activity是用户可视的交互组件,也是我们用得最多的一个组件,负责向用户展示从网络获取、本地储存处理后的信息;Content Provider是获取其他应用的信息;Service是不可视的交互组件...
  • qq_435559203
  • qq_435559203
  • 2016-09-12 15:45:13
  • 1337

基于场景解读Android四大组件

谈到Android四大组件:Activity,Service,Broadcast和ContentProvider,大部分人应该都比较熟悉了,因为会使用这四大组件是作为一个App开发者的基本功。但是,大...
  • okgays
  • okgays
  • 2017-04-02 14:21:51
  • 520

Android基础四大组件详解

Android四大组件Activity,Service,BroadCastReceiver,ContentProvider详解
  • qq_35578940
  • qq_35578940
  • 2016-09-05 23:46:27
  • 7600

MFC中菜单栏选项的点击使能与禁止

主要程序源代码: CMenu *pMenu; pMenu = AfxGetMainWnd()->GetMenu(); pMenu->EnableMenuItem(ID_RESET, MF_GRA...
  • seaman_003
  • seaman_003
  • 2012-08-31 12:35:10
  • 3029

Android四大组件深度解析

系统对四大组件的过程进行了很大程度的封装,日常开发中并不需要了解底层的工作原理,那么研究这些原理的意义在哪里呢?如果你想在技术上更进一步,那么了解一些系统的工作原理是十分必要的,也是开发人员日后成长为...
  • u012768347
  • u012768347
  • 2016-03-15 12:23:37
  • 2086
    个人资料
    等级:
    访问量: 2259
    积分: 249
    排名: 32万+
    文章存档