当前位置: 首页 > news >正文

青岛网站开发工资wordpress添加用户登录

青岛网站开发工资,wordpress添加用户登录,仿制单页面网站多少钱,买入网站建设费的分录Android 5.0(lollipop)发布之后#xff0c;看特性文档增加了不少有趣的东西。 最近花了一些时间#xff0c;研究了下其中Managed Profile的概念#xff0c;简称MP#xff0c;记录下来作为一些经验#xff0c;有需要的同学请参考。 简介 Managed Profile#xff0c;简称被…Android 5.0(lollipop)发布之后看特性文档增加了不少有趣的东西。 最近花了一些时间研究了下其中Managed Profile的概念简称MP记录下来作为一些经验有需要的同学请参考。 简介 Managed Profile简称被管理者账户。这个概念并不是什么新东西因为早在4.2版本中Android就引入了多用户机制来解决平板使用上的问题。而如今5.0新加入的这个被管理者账户功能可以理解成为是为了解决用户本人对于应用进行分类的需求问题而做的细化吧。 存在于被管理者账户中的应用受制于主账户也就是仍然处于机主本人的控制之下。但这些应用的存储空间以及应用的userID和PID都不同于主账户的同名应用。 这些在被管理者账户中的应用可以由机主进行各方面的限制比如说控制这些应用不能访问摄像头——所有涉及到拍照部分的功能都开启不了再比如说控制某些特定应用的功能——比如说让chrome的历史记录功能禁止使用。而所有的这些应用都与主账户中的应用隔离这就意味着原本可能会被无故唤起的某些应用放到这里之后它也再也不会被另一些流氓应用给后台唤醒了。 前提条件 首先你需要一台安装Android5.0及以上版本的手机亲儿子系列最好因为不知道第三方ROM是否会将“加密”功能给阉割了。 开启手机加密的方法为 设置——安全——加密手机 一般来说手机出厂设置是不默认加密的需要用户自己启动才行。当然也可以通过代码来启动该功能具体如下 private voidregisterPovisionManagerProfile() { if (null this) { return; } Intentintent new Intent(ACTION_PROVISION_MANAGED_PROFILE); intent.putExtra(EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, this.getApplicationContext().getPackageName()); if(intent.resolveActivity(this.getPackageManager()) ! null) { startActivityForResult(intent, REQUEST_PROVISION_MANAGED_PROFILE); this.finish(); } else { Toast.makeText(this, Device provisioning is not enabled.Stopping., Toast.LENGTH_SHORT).show(); } } Override public voidonActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode REQUEST_PROVISION_MANAGED_PROFILE) { if(resultCode Activity.RESULT_OK) { Toast.makeText(getApplicationContext(), Provisioning done.,Toast.LENGTH_SHORT).show(); }else { Toast.makeText(getApplicationContext(), Provisioningfailed., Toast.LENGTH_SHORT).show(); } return; } super.onActivityResult(requestCode, resultCode, data); } 之后根据引导窗口则可以完成加密手机并设置Managed Profile的流程。 具体模块设计相关 对手机加密完成并生成Managed Profile账户之后我考虑了以下几个问题。 1.      启动MP账户的流程 在google给出的官方样例中启动一个ManagedProfile已经有了一套成熟的方案。 具体如下 a)        判断当前应用是否已经注册为当前账户的账户所有者profile owner——可以理解是拥有某些高级权限类似admin用户。 b)        如果不是则参考加密的流程发一个系统的intent启动加密流程。 c)        如果是那么恭喜你你已经处于一个MP中并且拥有这个MP下的类管理者权限了。 参考google的官方样例BasicManagedProfile即可。 为了方便后续描述当前应用我简称为AdminApp好了。 2.      如何添加现有应用至MP账户中。 一般来说查询当前系统中安装的应用状态Android已经有了非常方便的方式通过PackageManager可以查到系统中安装的各个包的信息总合也可以指定特定的包名来查询对应信息。 但是这个在MP账户中是做不到的。 比如常见的getInstalledPackages(intflag)方法虽然平时调用时仅使用参数flags。但从源码来看真实的被调用者其实是被隐藏的方法getInstalledPackages(int flags,int userId)暴露给我们的方法中userId已经固定为当前的用户ID。 再看一下PackageManager服务进程就能知道真正在查询安装包信息时该方法需要将userID作为校验条件之一。通常一个Profile下对应的所有应用都有一个相同的userID所以跨了Profile后就无法查询主账户下的应用信息了。 所以在默认的MP账户中操作getInstalledPackages()如果指明返回非系统应用则只会返回当前应用本身其他的三方应用是无法找到的。同样查找系统应用也只能查找到在MP账户中注册的系统应用没有注册的同样也找不到。 因此如果要添加相关应用至MP账户中无法通过轮询当前被管理者账户下所有的应用名称来一一添加。目前可行的有两种方法一种是用包名字串来激活另一种是从主账户AP来获取包名激活。 其中谷歌的官方demo BasicManagedProfile使用的第一种方法这里先进行介绍这种方法。如何从主账户来获取留在后面介绍。 还是以Chrome应用为例。 Chrome的包名是com.android.chrome 通过isApplicationEnabled方法可以判断当前这个应用并没有在MP账户中。具体的原理就是刚才所说的userID隔离后的查询的结果。 /** * Checks if the application is availablein this profile. * * param packageName The package name * return True if the application isavailable in this profile. */ private boolean isApplicationEnabled(String packageName) { … } Android对已知包名的系统应用提供了将其重新安装到被管理者账户中的方法供AdminApp来调用。即public void enableSystemApp (ComponentName admin, StringpackageName)。 具体的使用流程可以参考demo中的代码段 /** * Enables or disables the specified app in this profile. * * param packageName The package name of the target app. * param enabled Pass true toenable the app. */ private voidsetAppEnabled(String packageName, boolean enabled) { } 需要注明的一点是这个方法只针对拥有INSTALL_PACKAGES权限的系统应用有效如果你传入的第三方应用包名那么肯定会抛出IllegalArgumentExceptionOnly system apps canbe enabled this way异常。 即使通过反射直接调用PackageManager服务的installExistingPackageAsUser(packageName,userID)方法也会因为权限的问题而失败。 所以手动添加第三方应用到MP中目前我是没有找到更好的方法只能在建立MP之后重新安装指定的第三方应用此时MP中会同样安装一份拷贝版本。 通过AdminApp调用enableSystemApp使能的系统应用会出现在被管理者账户中作为Launch的图标显示出来。 : 同样如果不希望该应用显示在MP中可以用AdminApp调用publicboolean setApplicationHidden (ComponentName admin, String packageName, booleanhidden)来隐藏。 简而言之通过上述的操作可以将一个系统应用重新安装到被管理者账户中。之后你可以对这个被管理者账户中的应用进行限制操作了。
http://www.pierceye.com/news/228661/

相关文章:

  • 网站建设与维护 许宝良 课件企业网站建设费用会计科目
  • react做的网站有哪些帮别人推广赚钱
  • php 深圳 电子商务网站开发苏州餐饮 网站建设
  • 相机拍照的图片怎么做网站呀现在的企业一般用的什么邮箱
  • 深圳自适应网站公司wordpress更改固定链接后
  • 网站报价网站源码下载工具
  • 买个网站域名要多少钱一年网站怎么建设模块
  • 怎么用自助网站设计之家网址
  • 新浪博客发布到wordpress网站seo快速优化技巧
  • php网站换服务器最超值的手机网站建设
  • seo整站优化技术培训wordpress博客编辑器
  • 一家专做灯的网站招聘wordpress 欲思
  • 山西省建设主管部门网站app备案号查询平台官网
  • 百度网站收录链接提交做购物网站的开题报告
  • 迷你主机做网站服务器南京龙媒网络科技有限公司
  • 网站重构给一个网站如何做推广
  • 温州网站推广价钱左侧导航栏网站模板
  • 网站建设朝阳南昌房地产网站建设
  • 大连网络建站公司分析wordpress漫画主题推荐
  • 纪检监察网站建设 讲话制作书签的感受心得
  • 宁波网站建设公司优选亿企邦上海网站快速备案
  • 贵阳有做网站的公司吗微信营销软件免费版
  • 打开网站乱码怎么做河南平台网站建设
  • 物流网站源代码安平县网站建设
  • 自助服务器网站建设修改wordpress的库名
  • 惠州做网站乐云seo网站建设如何插音乐
  • 自媒体图片素材网站东莞网站建设推广技巧
  • 新浪网站是什么程序做的六安网站关键词排名优化地址
  • 手机网站大全123456镇江手机网站建设
  • 企业网站模板下载哪家公司强服装设计就业前景如何