- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 Apple 和 Google 的新 API 来支持 Covid 接触者追踪,如本 API document 中所述.但是当我尝试在 XCode 中使用这些 API 时,找不到这些类:
let request = CTSelfTracingInfoRequest()
如何启用这些 API?
最佳答案
适用于 iOS 的 API 受到限制。虽然您可以使用 XCode 11.5 和 iOS 13.5 针对 ExposureNotifcation 框架编写代码,但如果没有 Apple 授予您配置,您甚至无法在模拟器中运行代码配置文件与 com.apple.developer.exposure-notification
权利。 Apple 仅在手动批准流程后将此权利授予与政府卫生机构相关的开发者。
以下是有关无需 Apple 特别许可即可执行的操作的更多信息。
iOS 13.5 之前的版本不允许在规范中传输暴露通知服务信标蓝牙广告格式。从 13.5 开始,广告只能由操作系统提供——如果不使用更高级别的 API,第 3 方应用程序无法发出该广告。
从 iOS 13.5 开始,Apple 还阻止第三方应用程序直接检测这种信标格式,迫使它们使用更高级别的 API。早期版本的 iOS 允许检测这种信标格式。
然而,Android 是另一回事。
虽然谷歌在 Google Play 服务中类似地限制了这些 API 的使用,只有具有谷歌授予的特殊权限的 API key ,Android 5.0+ 版本允许第 3 方应用发送和检测曝光通知服务信标广告 那个the bluetooth specification设想:
使用免费和开源 Android Beacon Library 2.17+,你可以像这样发送这个信标:
String uuidString = "01020304-0506-0708-090a-0b0c0d0e0f10";
Beacon beacon = new Beacon.Builder()
.setId1(uuidString)
.build();
// This beacon layout is for the Exposure Notification Service Bluetooth Spec
BeaconParser contactDetectionBeaconParser = new BeaconParser()
.setBeaconLayout("s:0-1=fd6f,p:-:-59,i:2-17");
BeaconTransmitter beaconTransmitter = new
BeaconTransmitter(getApplicationContext(), contactDetectionBeaconParser);
beaconTransmitter.startAdvertising(beacon
然后像这样扫描它:
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout("s:0-1=fd6f,p:-:-59,i:2-17"));
...
beaconManager.startRangingBeaconsInRegion(new Region("All Exposure Notification Service beacons", null));
...
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon: beacons) {
Log.i(TAG, "I see an Exposure Notification Service beacon with rolling proximity identifier "+beacon.getId1());
}
}
在Android上,即使在后台也可以进行上述传输和检测。有关详细信息,请参阅库文档。
传输和接收暴露通知服务信标的能力内置于 BeaconScope 中安卓应用。您可以将其用作帮助测试您构建的任何应用的工具。
您可以在我的博文中阅读更多信息 which shows you how to build your own app to do this.
至于 iOS,虽然在撰写本文时无法传输,但您可以在 iOS 13.4.x 及更早版本上使用如下代码扫描这些信标:
let exposureNotificationServiceUuid = CBUUID(string: "FD6F")
centralManager?.scanForPeripherals(withServices: [exposureNotificationServiceUuid], options: [CBCentralManagerScanOptionAllowDuplicatesKey: true])
...
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
if let advDatas = advertisementData[CBAdvertisementDataServiceDataKey] as? NSDictionary {
if let advData = advDatas.object(forKey: CBUUID(string: "FD6F")) as? Data {
let hexString = advData.map { String(format: "%02hhx", $0) }.joined()
let proximityId = String(hexString.prefix(32))
let metadata = hexString.suffix(8)
NSLog("Discovered Exposure Notification Service Beacon with Proximity ID\(proximityId), metadata \(metadata) and RSSI \(RSSI)")
}
}
}
但是请注意,Apple 阻止了它从 iOS 13.5 beta 2 开始运行。didDiscover
上面的方法永远不会为带有曝光通知服务 UUID 的广告调用。
完全披露:我是 Android Beacon Library 开源项目的首席开发人员,也是基于该库构建的 BeaconScope 应用程序的作者。
编辑 2020 年 4 月 26 日:更新上面的答案以链接到暴露通知服务蓝牙规范的修订版 1.1 版本,根据该更改更新命名约定,并修改代码示例以显示元数据。
编辑,2020 年 4 月 30 日:更新的答案基于 Apple 发布的 iOS 13.5 beta 2 和 XCode 11.5 beta,以及 Apple 现在阻止第 3 方应用程序检测曝光通知服务信标这一事实。
2020 年 6 月 2 日编辑:根据 Apple 的 iOS 13.5 最终版本和 Google 的 Google Play 服务版本更新了答案。
关于bluetooth-lowenergy - 我可以使用 Apple 和 Google 的接触者追踪规范吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61161450/
我们有一个 Java 项目,每天晚上使用 TeamCity 对 Java 类进行静态分析,以查找代码中容易出现的错误。我们想告诉 TeamCity 寻找开发人员可能引入的与 == 与 .equals
Promises/A+ 这是一个开放标准,旨在让不同开发者实现的 JavaScript Promise 能够无缝衔接并应用——由前辈们制定,为其他后来者提供参考 一个 promise 所
前言 🍊缘由 Git分支管理好,走到哪里都是宝 🏀事情起因: 最近翻看博客中小伙伴评论时,发现文章【规范】看看人家Git提交描述,那叫一个规矩一条回复: 本狗亲测在我司中使用规范
使用带有不存在的命名空间的命名空间限定关键字来定义规范是否被认为是不好的做法?我想在公共(public) domain 命名空间中定义实体映射...所以为了避免在合并规范时丢失数据,我使用约定 :en
有没有办法在调用 clojure.spec.test.alpha/check 时覆盖核心谓词函数的生成器? 可以通过 s/gen 中的路径覆盖谓词生成器: (gen/generate (s/gen
以内核 rpm 为例,它允许在一个系统上同时安装多个版本。规范文件中究竟是什么允许的? 我想打包一个已经存在的具有不同安装前缀的多个版本的项目。 最佳答案 百胜 找到了让 yum 安装而不是更新的方法
我正在尝试用 C# 编写 PDF 解析器,但我遇到了一个问题,我不确定如何解释规范。 除非另有说明,否则 PDF 文档中的用户空间为 1/72 英寸(即 1pt)。 Tf 运算符提供的比例将字体从标准
我正在编写一些代码,需要能够获取两个 pdf 并将它们附加到页面级别(例如,如果它们都是 2 页文档,则有一个 4 页文档,其中所有 4 页都与原始文档相同). 在不使用库的情况下,最好的方法是什么?
是否有序言语言语法,或接近它的通常用作引用的东西?我正在使用 SWI-prolog,所以有一个适合这种风格的会很好,否则一般的 prolog 语言语法/规范也能工作。 最佳答案 自 1995 年起,P
我需要一个函数来过滤参数和构建查询。我有 4 个参数,因此如果我尝试为每个条件实现查询,我将不得不写 16 (2^4)实现 - 这不是一个好主意。 我尝试使用界面改进我的代码 Specificatio
这个 ExtGState 对象对图像做了什么: > 我有 PDF 规范,但一点也不清楚。显然,这将身份函数(什么的身份?单位矩阵?)从 [0.0 1.0] 映射到 [0.0 1.0](相同),这是没有
只是想获得有关 ePub 规范的一些帮助。toc.ncx 是否必须具有 src(即 xhtml)。我观察到 .opf 文件中也提供了相同的内容 src。 最佳答案 是的,这是强制性的,这是一个设计问题
让我们看看莱宁根项目 map 的真实示例 :global-vars : ;; Sets the values of global vars within Clojure. This example
我正在开发一个 LOB 框架,它具有 SL 和 MVC 前端、WCF 后端以及在服务器上运行的几个服务模块。我一直在查看 Spec#,看它是否对我有任何帮助。不可空类型和检查异常本身非常好,但我还没有
Promises/A+规范是最小的规范之一。因此,实现它是理解它的最佳方法。福布斯·林德赛(Forbes Lindesay)的以下回答将引导我们完成实现Promises / A +规范Basic Ja
哪个文档指定了 MySQL definer 格式? 具体来说,definer admin@% 中的 % 是什么意思(以及为什么使用这个符号)? 最佳答案 这里MySQL使用的格式定义在the MySQ
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
在 css 规范中,什么会影响更多的 inline 样式或外部 !important 外部“style.css”: #di{color: green!important;} div 文本颜色是红色还
我正在努力思考 CSS 的一些细节,我从 W3 CSS Visual Formatting Spec 9.2.2 中找到了这部分摘录。特别迟钝: Inline-level boxes that are
这个问题在这里已经有了答案: Are (non-void) self-closing tags valid in HTML5? (8 个答案) 关闭 9 年前。 在 HTML5 中你应该使用 或
我是一名优秀的程序员,十分优秀!