应用程序可以知道用户何时从iOS 11驾驶时请勿打扰功能?

时间:2017-10-04 05:59:57

标签: ios xcode apple-push-notifications ios11

在iOS 11中,Apple会通过提供您正在驾驶的通知并阻止通知来阻止推送通知。我很好奇,我们可以从iOS中提取该信息并在我的应用中使用它吗?

编辑:我已经有了一个检测驾驶模式的机制,但我想知道我们是否可以访问该数据,并想知道该数据中还有哪些(如果有的话)是的。所以请不要发布导致驾驶模式检测算法的链接。

2 个答案:

答案 0 :(得分:0)

大多数应用程序执行此类操作都依赖于Accelerometer的数据。所有的智能手机现在都是一天,包括iOS内置了加速计传感器。

预测一个人是否开车的想法是根据该传感器提供的数据推断用户移动的速度,并根据该传感器执行操作。

所有SDK都提供可以使用此数据的功能。因此,它也将为您提供。

答案 1 :(得分:0)

如果您想了解可以使用CMMotionActivity的用户活动,则没有公共API可以管理免打扰驾驶:

var automotive: Bool
A Boolean indicating whether the device is in an automobile.
  

在支持动作的设备上,您可以使用CMMotionActivityManager   当前运动类型发生变化时请求更新的对象。   发生更改时,更新信息将打包为a   CMMotionActivity对象并发送到您的应用程序。

所有推送通知都由系统管理,如果它们被阻止,您将无法访问其数据。也许如果您需要在应用程序中执行某些操作的通知,则可以使用静默推送通知:

  

配置无声通知

     

aps词典还可以包含content-available属性。   值为1的content-available属性允许远程   通知充当无声通知。当一个无声的通知   到了,iOS在后台唤醒你的应用程序,以便你可以得到   来自服务器的新数据或进行后台信息处理。   不会告知用户有关新信息或已更改的信息   从一个无声的通知,但他们可以找到下一个   他们打开你的应用程序的时间。

     

对于无声通知,请注意确保没有警报,   aps字典中的声音或徽章有效负载。如果你不遵循   在此指南中,可能是错误配置的通知   限制而不是在后台传递给应用程序,而是   静默显示给用户

但也许这种通知也被阻止了:

  

驾驶时请勿打扰功能,它基本上会关闭   您的手机没有实际关闭,所以没有任何通知   善良将能够通过。