标签: android-for-work

为多个客户发布Android私有应用

我们正在处理什么

我们有这个应用程序,我们以离线方式分发给我们的客户(即没有上传到Play商店).分发给每个客户的应用程序风格几乎完全相同,只是在这里和那里进行一些调整.我们所有的客户都将这个应用程序分享给员工使用.基本上这是一个企业应用程序.

有什么问题

最近,我们的一位客户开始使用MDM(移动设备管理)工具来阻止未从Google Play下载的应用.很明显,我们收到了客户的请求,看看我们是否可以在Google Play上上传此应用.

这里重要的是我们有超过100个客户端,并且提供给每个客户端的应用程序的包名实际上是相同的.所以它是相同的应用程序,在这里和那里进行一些调整.如果我们沿着将应用程序发布到游戏商店的道路,我们可能最终陷入混乱(我们不希望将100个不同的应用程序上传到游戏商店 - 即每个客户端一个).我们正在进行一些优化,以便多个客户可以使用相同的应用程序(但我们不能让所有100多个客户使用相同的应用程序.).

我在看什么?

我开始关注Android For Work(AFW),谷歌私人应用,托管Google游戏以及仍在消化这些东西.但对我而言,它似乎只是企业部署/发布应用程序的安全方式,只能在特定设备上和特定配置文件下下载(这样可以将用户的个人应用程序和数据分开,以防他们将相同的手机用于个人和工作目的).

我在寻找什么样的解决方案?

  1. 私下部署一个应用程序(托管它与谷歌或私人托管,但在两种情况下都与谷歌播放列出),让我的客户与他们的员工共享此应用程序.

  2. 每个客户的每个私人应用程序应该在自己的小岛上.我想用相同的软件包名称向我的所有客户分发应用程序(从我到目前为止所读到的内容来看,谷歌播放可能无法实现这一点.但我希望如果我遗漏某些内容,有人可以指出事实).

android google-play android-for-work

17
推荐指数
2
解决办法
2233
查看次数

运行多个Android应用程序实例,如并行空间

我想知道并行空间https://play.google.com/store/apps/details?id=com.lbe.parallel.intl&hl=en是如何 工作的.这是一个用于登录另一个facebook,whatsapp等帐户的应用程序.您可以在Play商店链接中找到详细说明.

我查看了并行空间使用ES Explorer创建的文件夹.他们创建了以下文件夹parallel_intl/0 /

在这个文件夹中,他们有DCIM,图片等文件夹.我使用并行空间登录了另一个whatsapp帐户,他们在以下位置创建了whatsapp文件夹parallel_intl/0/Whatsapp

是否可以使用Android For Work Container实现相同的功能???

他们是如何创建一个单独的空间,Whatsapp等将运行???

请提供一些解释如何实现这一目标的指南.

谢谢.

virtualization android multiple-accounts whatsapp android-for-work

15
推荐指数
1
解决办法
3973
查看次数

在 Android 中通过 ADB 在工作配置文件中安装 APK

假设我们在 Android 设备中启用了工作配置文件 (Android For Work)。有谁知道如何在工作资料而不是个人资料中通过 ADB 安装 APK。

我看过 ADB 文档,有一种方法可以获取用户 ID,但使用相同的 ID 我无法安装 APK。

获取 ID:adb shell pm list users 安装命令:adb install -r --user 12 app_name.apk

错误信息 :

Performing Streamed Install
adb: failed to install app-prodDebug.apk: Security exception: Shell does not have permission to access user 12
 com.android.server.am.ActivityManagerService.handleIncomingUser:22541 android.app.ActivityManager.handleIncomingUser:3989 com.android.server.pm.PackageManagerShellCommand.translateUserId:2434

java.lang.SecurityException: Shell does not have permission to access user 12
 com.android.server.am.ActivityManagerService.handleIncomingUser:22541 android.app.ActivityManager.handleIncomingUser:3989 com.android.server.pm.PackageManagerShellComma
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决这个问题?我的用例是替换启用了调试选项的应用程序,以便我可以对安装在工作配置文件中的特定应用程序发生的任何问题进行故障排除。

android adb android-for-work

12
推荐指数
2
解决办法
5787
查看次数

如何获得(或绕过)Android DPC支持库?

我正在尝试为Android实现MDM客户端应用,在Android For Work世界中称为设备策略控制器或DPC。Google的有关构建DPC的文档在此处

记录的过程始于下载DPC支持库。不幸的是,他们提供下载链接(指向“ EMM社区的技术集成”部分)不起作用:系统提示您使用Google帐户登录,但是这样做后,我看到了以下信息:

我们很抱歉...

...但是您似乎无权访问此地点或内容。如果您认为自己应该可以使用该空间,请尝试使用您的帐户菜单注销并重新登录,方法是单击此页面右上角的头像以访问该菜单。如果此问题仍然存在,请通知您的支持代表,我们将进行进一步的故障排除。

其他人也有同样的问题:这里发行的问题单只有两个月之久,没有答案,但由于某种原因已被标记为“ 已回答”,然后被忽略。

这里记录步骤非常清楚DPC支持库是该过程的必需部分,并且没有描述使用它的任何替代方法。

那么,如何获得DPC支持库?可以在其他任何地方获得吗?还是失败了,我如何找出它的作用,以便可以在自己的代码中手动重现这些步骤?


我已经尝试过的一些步骤:

  1. 我已经成功注册了EMM社区,并可以访问EMM API。(即,我现在从Enterprises.generateSignupUrl收到了有效的响应,而不再是令人恐惧的“ 呼叫者未注册为MDM ”。)这本身就是一个漫长而令人沮丧的不透明过程。
  2. 我已经构建并运行googlesamples / android-testdpc应用,并仔细查看了源代码。不幸的是,这是一个仅客户端的演示:它不与EMM服务器通信,也不使用DPC支持库。具体而言,它并不获得,以便令牌提供设备上的工作资料中的授权,记录在这里
  3. 我玩过公共EMM演示系统及其DPC应用程序。这似乎做得不错,但是由于它是封闭源代码,因此我无法查看客户端或服务器的代码。

android mdm android-for-work

6
推荐指数
1
解决办法
1018
查看次数

适用于 G Suite 的 Android 管理 API

我们有一个 G Suite 帐户,我想使用Android Management API管理我们公司拥有的一些平板电脑作为信息亭显示。但是,它似乎需要一个任意的“个人”Gmail 帐户,而不是允许 G Suite 用户使用它。

要配置 a device,您需要创建一个policy. 需要将策略分配给enterprise.

选项 1:尝试链接现有企业

你可以从这里获取你的 G Suite 组织 ID ,这个 ID显然也是你的企业 ID。该API需要它的格式enterprises/id,如enterprises/abcdefg

不幸的是,即使在与超级管理员进行身份验证后,对 API 的任何调用都会遇到

{
    "error": {
       "code": 403,
       "message": "Caller is not authorized to manage enterprise.",
       "status": "PERMISSION_DENIED"
    }
}
Run Code Online (Sandbox Code Playgroud)

选项2:创建企业

提供了快速入门指南,可让您轻松创建企业、创建策略,然后调配设备。当我们使用个人 Gmail 帐户时一切正常,我可以成功地将平板电脑配置为自助服务终端模式。一旦我尝试使用 G Suite 帐户,就会遇到: "G Suite is not currently supported by managed Google Play Accounts, …

android android-for-work android-management-api google-workspace

6
推荐指数
1
解决办法
436
查看次数

Airwatch Android实施

对于那些从事过Airwatch实施工作的人来说,我的问题似乎真的很愚蠢.但他们的文档编写得不是很好,我有一些疑问.

所以我设置了我的用户,并使用airwatch控制台添加了我的设备.

我在现有的Android应用程序中添加了App限制代码.

我还通过Airwatch Agent应用程序添加了要推送到应用程序的键值.

但是我没有收到这些键值,我在执行以下代码时应该这样做:

Bundle appRestrictions = myRestrictionsMgr.getApplicationRestrictions();
Run Code Online (Sandbox Code Playgroud)

appRestrictions包是空的.

我在文档中读到了一些内容,即AppConfig需要安装Android 5.0 for Android for Work Device.这是否意味着我必须在我的Android设备上启用Android工作功能?这是否需要甚至用于开发目的?我尝试使用以下链接徒劳无功:https://support.google.com/a/answer/6178111?hl = zh-CN.可以请一些人共享一个doc,以便在我的Android设备上启用android工作功能,如果需要的话.

android mdm airwatch android-for-work

5
推荐指数
1
解决办法
1796
查看次数

如何获取仅使用v2方案签名的APK的签名校验和?

我之前在这里发布了一个有关如何获取我的APK签名校验和的问题: 如何获取我的APK签名校验和?

如果应用是使用v1签名方案或v1 / v2组合签名方案签名的,则答案是完美的。(Jar和Full APK签名)

但是,由于我的应用只能在Android O或更高版本上运行(这是特定于设备的应用),因此我将仅使用APK签名方案v2(v2方案)对其进行签名。

我将使用EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。有关详情,请参见:https//developer.android.com/reference/android/app/admin/DevicePolicyManager.html

如何获得我的应用程序的APK(v2)签名校验和,可在我的键/值对中用于NFC设置设备所有者应用程序?

android provisioning device-policy-manager device-owner android-for-work

5
推荐指数
1
解决办法
2082
查看次数

是否可以在不注册EMM社区的情况下构建DPC?

由于申请EMM集成的过程花费了不合理的大量时间,并且整个过程被那些通过它的幸运者描述为"令人难以置信的痛苦",我想知道是否绝对需要成为EMM以便按顺序有一个有效的设备策略控制器应用程序(DPC).

如果您遇到此问题,请分享经验.

我正在为COSU设备开发并希望进入自助服务终端模式.我知道存在如何做到这一点的方法,但它们都实现了一堆变通方法 - 这不是一个选项 - 我想要一个可控,安全和健壮的方法来做到这一点.我也不在乎没有远程管理的能力.

android android-for-work cosu android-enterprise

5
推荐指数
1
解决办法
977
查看次数

通过 Android Management Api 或设备所有者 locktask 开发 Cosu 应用程序

我必须为我的企业设备实现一次性应用程序,其中只有一个主要的 android 应用程序本身可以使用 2-3 个其他应用程序,如通话、短信和谷歌地图,除此之外,用户不得使用或访问其他应用程序和设置,

1)我已经考虑过通过企业管理 Api 使用企业拥有的单一用途,它更复杂、更大,但更完整的解决方案。

2) 我已经使用 看起来更像是我的解决方案的 android 设备所有者应用程序实现并测试了示例 锁定任务,但存在问题

我如何为生产级设备提供设备所有者?对于我的测试,我能够使用 adb shell 命令进行配置。我知道设备必须是新的/重置和未配置的,这不是问题。

我在这里寻求一些建议,如果有人实施了它会有所帮助。

更新

使用Fred 建议的 android management Api QuickStartGuide似乎是正确的方法。我的政策是来自自定义启动器的多个应用程序, 现在我陷入了困境,我想发布我的启动器应用程序或其他应用程序以仅为我的企业播放商店。

我遵循将您自己的应用程序上传到 Google Play 商店,这导致我发布了私人应用程序,但我无法这样做,因为我没有获得限制分发选项。

我不知道如何完美地实现这一目标。对于我目前的政策和企业,我有 2 个有效的电子邮件 ID,

第一个 email_1 是连接到初始项目的那个 项目所有者帐户

所有的 google api 调用都是在 email_1 下完成的 在此处输入图片说明.

另一个是 email_2 一个是企业的管理员 企业管理员

并连接到受管理的 Google Play 商店。托管 Play 商店管理员

email_1 和 email_2 都拥有我公司开发者帐户的管理员权限 发布应用帐号.

现在我需要弄清楚只为我的企业发布应用程序,我认为存在正确许可或其他方面的问题,需要帮助。谢谢

google-play device-owner android-for-work cosu android-management-api

5
推荐指数
1
解决办法
2611
查看次数

查询不同配置文件的意图活动:Android for Work

由于某些技术原因,我无法使用Android File Picker将文件及其内容存入我的应用程序.这就是为什么我想出了一个查询意图并在我自己的UI上处理结果的解决方案.

以下是我获取应用程序列表的方法 Intent.ACTION_GET_CONTENT

/* Create a new Intent to Read a File */
Intent documentIntent = new Intent(Intent.ACTION_GET_CONTENT);
documentIntent.setType((action == ACTION_SELECT_FILE) ? "*/*" : "image/*");

/* Query for Applications to see which are available */
List<ResolveInfo> appList = getActivity().getPackageManager().queryIntentActivities(documentIntent, PackageManager.MATCH_DEFAULT_ONLY);
Run Code Online (Sandbox Code Playgroud)

这很好,并列出了可以处理我的请求的应用程序.

但我工作的Android for Work,当我执行上面的代码,我只得到可用的应用程序列表中的工作资料,预计.

但是从上面的代码返回的结果之一是"切换到个人",其中列出了安装在Android文件选择器中的个人帐户中的应用程序.

所以问题是,我怎样才能获得相同的行为?如何从个人资料中查询意图活动?

android android-intent android-package-managers android-for-work

5
推荐指数
1
解决办法
847
查看次数