在 Android Lollipop 上使用 NFC 激活设备所有者

2023-11-25

我正在尝试使用 NFC 在设备上设置设备所有者包。 Lollipop 概述中提到了here:

要部署并激活设备所有者,您必须执行 NFC 数据 当设备处于运行状态时从编程应用程序传输到设备 其未配置状态。此数据传输发送相同的信息 如托管配置中描述的配置意图。

原因是一旦设置完毕,您就可以使用屏幕固定功能将设备锁定在信息亭模式。我已经能够通过将 device_owner.xml 文件放置到 root 设备上的 data/system/ 来手动设置设备所有者来测试此 kiosk 模式。

我以前从未使用过 NFC,所以我可能还很遥远,但我根据信息想出了以下 NdefMessagehere:

Properties properties = new Properties();
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME, "com.my.package");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_SSID, "MyWiFiSSID");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_WIFI_PASSWORD, "WifiPassword");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM, "C9AD9E082457819B54CF76255A400375E4127112");
properties.setProperty(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION, "https://dl.dropboxusercontent.com/u/xxx/app-release.apk");


ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(properties);
byte[] yourBytes = bos.toByteArray();
NdefRecord ndefRecord = NdefRecord.createMime(DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, yourBytes);
NdefMessage msg = new NdefMessage(ndefRecord);

将其发送到我刚刚使用 Lollipop 预览恢复的设备会导致其显示:

哎呀!无法设置您的设备。请联系您的 IT 部门。

它似乎认识到它正在接收提供请求,但我不认为它正在读取我设置的属性,它不会尝试连接 wifi。


看来您需要使用Properties.store正确创建 NdefRecord 的字节。

Properties properties = new Properties();
properties.setProperty(...);

ByteArrayOutputStream bos = new ByteArrayOutputStream();
OutputStream out = new ObjectOutputStream(bos);
properties.store(out, "");
byte[] bytes = bos.toByteArray();

NdefMessage msg = new NdefMessage(NdefRecord.createMime(DevicePolicyManager.MIME_TYPE_PROVISIONING_NFC, bytes));

目前,我在下载 APK 时遇到问题且校验和失败。完全不知道为什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android Lollipop 上使用 NFC 激活设备所有者 的相关文章

  • Android 4.4.2 - java.lang.RuntimeException:执行未恢复的活动停止

    我在 4 4 2 设备上遇到此异常 在 Android 4 3 或更低版本的设备上无法重现 设置是我有一个家庭活动 支持的子类ActionBarActivity 家庭活动检查布尔标志 如果为真 则启动启动画面活动 是的 理想情况下启动画面出
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • TypedArray 的 getResourceId 方法

    我正在阅读有关的文档获取资源Id https developer android com reference android content res TypedArray html getResourceId int 20int 方法 它说
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 毕加索动画加载图像

    我有以下代码在毕加索中加载图像 使用可绘制的占位符在图像下载时显示 不过 我想要的是一个动画旋转进度条样式的旋转器 它可以在图像加载时不断地旋转 就像我在大多数专业应用程序中看到的那样 毕加索似乎不支持这一点 只支持静态图像可绘制 有没有办
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • finish() 完成活动但它仍然在后台

    我有一个关于 android studio 中活动的 finish 方法的问题 我有这个简单的代码 public class MainActivity extends AppCompatActivity Override protected
  • 在 Jetpack Compose 中跨可组合函数重复使用一组预览注释

    在 Jetpack Compose 中迈出第一步 这非常令人惊奇 除了一个恼人的问题 我有一组固定的预览 正常 深色和 RTL Preview name Normal group Screen showBackground true Pre
  • 如何在进入新活动之前终止线程和处理程序

    大家好 在我尝试清理处理程序时 这段代码可能有点混乱 因为我一直在尝试追踪崩溃发生的位置 我有一个对话框活动 显示密码输入 进度条由线程和处理程序动画显示 似乎当我试图查看进度条是否完成并尝试终止线程时 当我尝试进入新活动时 我这样做的方式
  • 为什么Android应用程序在发布到市场后尺寸会增加?

    我最近在 Android 市场上发布了我的应用程序 显示应用程序大小为 5 4MB 而实际 apk 大小为 2 8MB 为什么显示多出2MB 我应该如何限制我的应用程序大小 请帮我 您的应用程序大小会增加 因为您使用了复制保护选项ON在发布
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • Android:如何检测手机设置中的语言已更改

    我如何检测我的手机语言是否已更改 例如 Facebook 应用程序将向我们宣布 please wait we preparing your language i used myString Locale getDefault getDisp
  • 当ScrollView滚动到底部时加载更多数据

    我有一个带有动态加载内容的滚动视图 有时可能会有很多内容 所以我想在用户滚动到底部时加载更多内容 我搜索了合适的方法 发现了两种 onScrollChanged and getScrollY 但我不知道如何将它用于我的目的 请给我一些建议

随机推荐

  • 为什么不是 C# 的 memberinfo() 反射函数 [重复]

    这个问题在这里已经有答案了 有sizeof and typeof 但为什么不memberinfo 返回一个实例System Reflection MemberInfo为帮助反射代码而选择的部分代码 Example Program Type
  • 无法向 LinearLayout 添加多个片段

    我正在使用具有垂直方向的 LinearLayout 来列出片段 我以编程方式将片段添加到容器中 如下所示 FragmentTransaction ft fragmentManager beginTransaction Fragment fr
  • Java中查找连续字符的字符串

    用 Java 编写一个函数 它接受一个字符串数组 并从字符串数组中仅返回那些连续重复特定字母的字符串 例如 如果 I P 是 Dauresselam slab fuss boolean clap 那么 O P 应该是 Dauresselam
  • 如何修复 jquery 库中的“jQuery 未定义”错误?

    导轨修复 确保在任何脚本加载之前 以便首先加载 jquery 这看起来真的很奇怪 当我加载页面时 出现 2 个 js 错误 在 Chrome 中 jquery ui min js 17 Uncaught ReferenceError jQu
  • MATLAB 图形绘制:在绘图过程中分配图例标签

    我正在以典型的 MATLAB 散点图格式绘制数据 通常 在绘制多个数据集时 我会使用命令 hold on 然后绘制每个数据 然后绘制图例 legend DataSet1 DataSet2 etcetera 但是 我在同一轴上绘制的 多个 数
  • CSS 固定跨度宽度

    在无序列表中 li span span The lazy dog li li span AND span The lazy cat li li span OR span The active goldfish li 允许添加类或样式属性 但
  • 为什么 Thread 的子类可以吞咽 InterruptedException?

    在布莱恩 戈茨的书中关于如何处理 InterruptedException 的文章 有一段话很突出 接受中断的一次是当您知道线程即将退出时 仅当调用可中断方法的类是 Thread 而不是 Runnable 的一部分时 才会出现这种情况 我不
  • C# 条件日志记录/跟踪

    我想向我的 C 应用程序添加日志记录或跟踪 但如果日志详细级别设置得太低以致于不会记录消息 我不希望记录格式化字符串或计算值的开销 在 C 中 您可以使用预处理器定义宏来阻止代码被执行 如下所示 define VLOG level expr
  • 从 Subversion 部署网站

    我是 subversion 的新手 想知道如何从开发转向暂存 然后生产 我想我掌握了为发布创建分支的概念详细信息在这里 但我如何实际部署分支呢 理想情况下 我可以建立一个新网站并从分支复制文件 但我担心将任何 svn 绑定复制到生产环境中
  • 在 PHP 中解析转义的 JSON

    我是 PHP 世界的新手 在 PHP 中解析 JSON 时遇到问题 我想使用我的 Java 客户端将数据 POST 到 PHP 脚本Apache HttpClient 4 x and Gson My JSON Knt KntWatchId
  • 合并两个数组并使用 jquery 创建第三个数组

    我有 2 个数组arr1 A B C D 和 arr2 a b c d 我想通过以下方式组合这两个数组来创建第三个数组 arr3 A a B b C c D d 我怎样才能使用 jquery 实现这一点 请帮忙 尝试使用jquery的 me
  • 如何在Delphi中编写一个EXE,它也是一个COM服务器

    我有一个 Delphi 2007 应用程序 它只是一个标准的 exe 我想向它添加一个 COM 接口 我已经有一个 COM dll 它导出多个 COM 对象 并且运行良好 然而 当我尝试将 dll 中的 COM 逻辑 即 exports 和
  • C/C++/Java 中 volatile 说明符的用法

    在浏览有关多线程编程的许多资源时 通常会出现对易失性说明符的引用 很明显 至少在 C C 和 Java 版本 1 4 及更早版本 中 使用此关键字不是实现多线程之间同步的可靠方法 以下是维基百科列出的 没有解释如何 作为此说明符的典型用法
  • 在 $.ajax 成功中迭代 JSON

    当用户单击按钮时 我想返回一些数据并迭代 JSON 以便可以将结果附加到表行 此时我只是想让我的循环工作 这是我的代码 我的 JSON 返回如下 COLUMNS username password DATA foo bar button c
  • 如何在指定打印机上打印Jasper Reports?

    我想要的只是打印 Jasper 报告 而无需用户选择打印机 我搜索过但没有有效的解决方案 这是我的代码的相关部分 compile to jasper String report JasperCompileManager compileRep
  • forEach 内的异步函数与 js 循环[重复]

    这个问题在这里已经有答案了 可能的重复 javascript 使用一个回调执行一堆异步方法 我已经为这个问题苦苦挣扎了好几天 但我就是想不出一种优雅的方法来处理它 问题就在这里 我正在运行 forEach 循环 我需要知道一切何时完成 由于
  • 将非常大的 int 转换为 double,在某些计算机上会损失精度

    我目前正在学习cpp中的类型间数据转换 我被教导说 对于一个非常大的整数 我们 对于某些计算机 可能会遭受损失 转换为双精度时的精度 但该声明没有提供理由 有人可以提供解释和例子吗 谢谢 假设浮点数使用 N 位存储 现在 我们假设这个浮点数
  • JPA 工作单元克隆中遇到空或零主键

    我了解到JPA并有任务创建数据库并向其中插入一些值 我想知道如何找出最近插入的对象的ID是什么 所以我找到了一种我需要使用的方法flush的方法EntityManager 不幸的是我得到了 工作单元克隆中遇到空或零主键 当我使用上述方法时出
  • 如何检查 NSNumber 中的空值

    首先我承认我的无知 在我从事项目的几个月里 我已经学到了关于 Objective C 的一切 我还发现 Objective C 似乎使我使用过的任何其他语言中的简单问题变得复杂 这非常令人沮丧 这个问题就是一个例子 在第一次运行中 我的应用
  • 在 Android Lollipop 上使用 NFC 激活设备所有者

    我正在尝试使用 NFC 在设备上设置设备所有者包 Lollipop 概述中提到了here 要部署并激活设备所有者 您必须执行 NFC 数据 当设备处于运行状态时从编程应用程序传输到设备 其未配置状态 此数据传输发送相同的信息 如托管配置中描