{"_id":"5d7784f60f343c018dd08ccf","project":"54aa7f773b56130b0056c86e","version":{"_id":"55781fe25129590d003ff4f7","project":"54aa7f773b56130b0056c86e","forked_from":"54aa7f773b56130b0056c871","__v":8,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z","categories":["55781fe35129590d003ff4f8","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","55781fe35129590d003ff4fb","55781fe35129590d003ff4fc","55781fe35129590d003ff4fd","55781fe35129590d003ff4fe","564bbc7e8841060d00abb2ee","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","582318b23b961a0f009516a1","594a848c9f4771001a43c959","5c73dd27e8fdc000572a206a","5c77ac5af94a920045cb80ca"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Developers","version_clean":"2.0.0","version":"2.0"},"category":{"_id":"55781fe35129590d003ff4fb","version":"55781fe25129590d003ff4f7","__v":11,"pages":["55781fe45129590d003ff517","55781fe45129590d003ff518","55781fe45129590d003ff519","55781fe45129590d003ff51a","55781fe45129590d003ff51b","55781fe45129590d003ff51c","55781fe45129590d003ff51d","55781fe45129590d003ff51e","55781fe45129590d003ff51f","55781fe45129590d003ff520","55781fe45129590d003ff521","55781fe45129590d003ff522","5579ab5fc7fb3f2100096fad","55f7de1660cc850d008a7a22","55f7e1fbe32e9b0d00a2d4d0","561f72bacec1a50d00979598","561f764f61c0521700acc428","563337539c607719001b85dd","564318f1f49bfa0d002f5566","564f03454f000617007bd670","565ee80a23fd5f0d00a129f9","56793cd73473bc0d008e141b"],"project":"54aa7f773b56130b0056c86e","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T12:43:51.897Z","from_sync":false,"order":3,"slug":"ios-sdk","title":"iOS SDK"},"user":"57bc3654b9c7f0220009c77b","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2019-09-10T11:11:50.001Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":27,"body":"With iOS13 Apple has introduced a new Bluetooth Permission. This permission is required to collect analytics data about how many users have Bluetooth ON or OFF. This permission is not required to scan for Beacons. The Pulsate SDK will now by default set the Bluetooth state to unknown for all users. With the release of 2.16.0 to properly track the Bluetooth state Developers must first set the \"*NSBluetoothAlwaysUsageDescription*\" key in their App Info and call the new PulsateManager method \"*requestBluetoothPermission*\". \n\nThe \"*NSBluetoothAlwaysUsageDescription*\" is the message the user will see when asked for the Bluetooth Permission. The \"*requestBluetoothPermission*\" method will show the new Bluetooth Permission prompt with the message set and ask users if they Allow or Deny the permission.\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"NSBluetoothAlwaysUsageDescription\",\n  \"body\": \"Please make sure to add \\\"*NSBluetoothAlwaysUsageDescription*\\\" to all Apps that use Pulsate. If \\\"*NSBluetoothAlwaysUsageDescription*\\\" is missing and Pulsate or the Developer tries to create a CBCentralManager the App will crash for the user.\"\n}\n[/block]","excerpt":"","slug":"bluetooth-permission-ios13","type":"basic","title":"Bluetooth Permission iOS13"}

Bluetooth Permission iOS13


With iOS13 Apple has introduced a new Bluetooth Permission. This permission is required to collect analytics data about how many users have Bluetooth ON or OFF. This permission is not required to scan for Beacons. The Pulsate SDK will now by default set the Bluetooth state to unknown for all users. With the release of 2.16.0 to properly track the Bluetooth state Developers must first set the "*NSBluetoothAlwaysUsageDescription*" key in their App Info and call the new PulsateManager method "*requestBluetoothPermission*". The "*NSBluetoothAlwaysUsageDescription*" is the message the user will see when asked for the Bluetooth Permission. The "*requestBluetoothPermission*" method will show the new Bluetooth Permission prompt with the message set and ask users if they Allow or Deny the permission. [block:callout] { "type": "danger", "title": "NSBluetoothAlwaysUsageDescription", "body": "Please make sure to add \"*NSBluetoothAlwaysUsageDescription*\" to all Apps that use Pulsate. If \"*NSBluetoothAlwaysUsageDescription*\" is missing and Pulsate or the Developer tries to create a CBCentralManager the App will crash for the user." } [/block]