我是 Android 企业开发领域的新手,我对 Android 企业生态系统中不同部分的相互关系有一些误解。让我解释。
我试图实现的解决方案是能够远程将设备锁定为自助服务终端模式,并且即使在用户离线时也能基于某些业务逻辑执行此操作。我开始调查 EMM,特别是 Android Management API 来解决这个问题。我能够使用 API 将设备远程锁定到信息亭模式。我采取的步骤如下
下一步是找到一种方法,即使在用户离线时也能将设备锁定为自助服务终端模式。我假设这将通过创建 Android 企业自定义 DPC(设备策略 Controller )应用程序来实现。我假设通过阅读 following 文档,其中配置“单一用途”设备的 3 种方法之一是创建自定义 DPC 应用程序。这是来自不同 url 的另一段引述
As an EMM, you develop a DPC app that can be used by your customers in conjunction with your EMM console and server. Your customer deploys the DPC to the user devices that they manage. The DPC acts as the bridge between your EMM console (and server) and the device. An admin uses the EMM console to perform a range of tasks, including configuring device settings and apps.
这就是我所有的困惑出现的地方。 自然而然出现的第一个问题 - 前面引述的作者在谈论 EMM 控制台和服务器时是否指的是 EMM 管理 API?
此外,还有更多的问题我找不到答案
在用于创建自定义 DPC 的 guide 中,没有提及 EMM API 将在自定义 DPC 中扮演什么角色,因此我找不到任何地方描述自定义 DPC 究竟如何成为 EMM 之间的桥梁控制台(大概是 EMM API)和设备?
然后,假设我开发了一个自定义 DPC 应用程序并将其上传到 google play alpha channel 。 documentation 指出在设置过程中我应该输入 afw#DPC_NAME 而不是输入 afw#setup,但我不知道如何生成该名称?它是 DPC 应用程序的包 ID 吗?或者它可能是在谷歌设置中的某个地方设置的?比如google开发了TestDPC的应用来测试企业解决方案,我可以通过我上面描述的步骤输入afw#testdpc成功扫描git readme文件中的二维码,我看到安装了TestDPC并且设备已启动到工作配置文件模式。所以,我假设我需要以某种方式注册我自己的“testdpc”并改为输入 afw#my_dpc。
基本上,我有不同的部分独立工作,我想在脑海中形成一个更广阔的画面,以了解如何将这些部分拼接在一起。
感谢您的回答
更新 1:
今天,我找到了一种无需通过 NFC 或其他配置过程即可将自定义 DPC 转变为设备所有者的方法。这对于开发目的特别有用。按照 this link 获取说明。这既节省了大量时间,而且就我而言,我们仍在等待谷歌的批准,但最终我们可以开始测试一些东西,而无需自定义配置过程。
最佳答案
有两种不同的方式管理 Android 设备:
新方法:Android Management API .这是 Google 推荐的方式,比旧方式简单得多,您不需要调用其他 API 或创建自定义 DPC。如果此 API 未解决您的用例,您可以 send feedback到 Google,以便他们可以添加缺少的功能。
旧方法(自 2019 年 12 月 20 日起不再适用于新部署):使用自定义 DPC。为此,您需要:
在文档中,您(使用这些 API 的开发人员)被称为“EMM”。 “EMM 服务器”是指您拥有并调用这些 API 的服务器,“EMM 控制台”是指您向 IT 管理员公开的 UI 控制台(如果有)。
关于android - 设计自定义 android DPC 应用程序与 Android 管理 API 有何关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49688616/
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin
我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano
我使用Ember作为我的前端和GrapeAPI来为我的API提供服务。前端发送类似:{"service"=>{"name"=>"Name","duration"=>"30","user"=>nil,"organization"=>"org","category"=>nil,"description"=>"description","disabled"=>true,"color"=>nil,"availabilities"=>[{"day"=>"Saturday","enabled"=>false,"timeSlots"=>[{"startAt"=>"09:00AM","endAt"=>
我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc