Is the device UUID assigned by iOS to BLE devices stable over time?










0















When you scan for Bluetooth LE devices in iOS, it doesn't tell you the MAC address of the device for privacy reasons. Instead, it generates a UUID which can be used to address that specific device (for example if you want to connect to it).



I'm aware that these UUIDs are NOT stable across devices, that is, two phones will see the same device has having a different UUID.



I've also observed that on a given phone, these UUIDs are stable across a short time period - the same phone will see the same UUID for the same device over the span of a few minutes.



What I don't know, and haven't been able to find, is whether these UUIDs are stable across a longer period (days or months), or events such as the app getting killed/restarted, or perhaps the phone rebooting.



If it helps, I'm thinking of implementing a "remember last known action" system, where my app remembers the last X for any given device, such that when it reconnects to it, it can start from the previous thing rather than starting from a clean slate.










share|improve this question

















  • 1





    Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

    – Paulw11
    Nov 14 '18 at 20:10












  • Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

    – Orion Edwards
    Nov 14 '18 at 20:46











  • I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

    – Paulw11
    Nov 14 '18 at 20:58











  • I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

    – Sam
    Nov 14 '18 at 22:14











  • If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

    – Larme
    Nov 15 '18 at 15:15















0















When you scan for Bluetooth LE devices in iOS, it doesn't tell you the MAC address of the device for privacy reasons. Instead, it generates a UUID which can be used to address that specific device (for example if you want to connect to it).



I'm aware that these UUIDs are NOT stable across devices, that is, two phones will see the same device has having a different UUID.



I've also observed that on a given phone, these UUIDs are stable across a short time period - the same phone will see the same UUID for the same device over the span of a few minutes.



What I don't know, and haven't been able to find, is whether these UUIDs are stable across a longer period (days or months), or events such as the app getting killed/restarted, or perhaps the phone rebooting.



If it helps, I'm thinking of implementing a "remember last known action" system, where my app remembers the last X for any given device, such that when it reconnects to it, it can start from the previous thing rather than starting from a clean slate.










share|improve this question

















  • 1





    Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

    – Paulw11
    Nov 14 '18 at 20:10












  • Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

    – Orion Edwards
    Nov 14 '18 at 20:46











  • I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

    – Paulw11
    Nov 14 '18 at 20:58











  • I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

    – Sam
    Nov 14 '18 at 22:14











  • If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

    – Larme
    Nov 15 '18 at 15:15













0












0








0








When you scan for Bluetooth LE devices in iOS, it doesn't tell you the MAC address of the device for privacy reasons. Instead, it generates a UUID which can be used to address that specific device (for example if you want to connect to it).



I'm aware that these UUIDs are NOT stable across devices, that is, two phones will see the same device has having a different UUID.



I've also observed that on a given phone, these UUIDs are stable across a short time period - the same phone will see the same UUID for the same device over the span of a few minutes.



What I don't know, and haven't been able to find, is whether these UUIDs are stable across a longer period (days or months), or events such as the app getting killed/restarted, or perhaps the phone rebooting.



If it helps, I'm thinking of implementing a "remember last known action" system, where my app remembers the last X for any given device, such that when it reconnects to it, it can start from the previous thing rather than starting from a clean slate.










share|improve this question














When you scan for Bluetooth LE devices in iOS, it doesn't tell you the MAC address of the device for privacy reasons. Instead, it generates a UUID which can be used to address that specific device (for example if you want to connect to it).



I'm aware that these UUIDs are NOT stable across devices, that is, two phones will see the same device has having a different UUID.



I've also observed that on a given phone, these UUIDs are stable across a short time period - the same phone will see the same UUID for the same device over the span of a few minutes.



What I don't know, and haven't been able to find, is whether these UUIDs are stable across a longer period (days or months), or events such as the app getting killed/restarted, or perhaps the phone rebooting.



If it helps, I'm thinking of implementing a "remember last known action" system, where my app remembers the last X for any given device, such that when it reconnects to it, it can start from the previous thing rather than starting from a clean slate.







ios bluetooth-lowenergy core-bluetooth






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 14 '18 at 19:56









Orion EdwardsOrion Edwards

85.9k51195275




85.9k51195275







  • 1





    Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

    – Paulw11
    Nov 14 '18 at 20:10












  • Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

    – Orion Edwards
    Nov 14 '18 at 20:46











  • I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

    – Paulw11
    Nov 14 '18 at 20:58











  • I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

    – Sam
    Nov 14 '18 at 22:14











  • If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

    – Larme
    Nov 15 '18 at 15:15












  • 1





    Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

    – Paulw11
    Nov 14 '18 at 20:10












  • Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

    – Orion Edwards
    Nov 14 '18 at 20:46











  • I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

    – Paulw11
    Nov 14 '18 at 20:58











  • I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

    – Sam
    Nov 14 '18 at 22:14











  • If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

    – Larme
    Nov 15 '18 at 15:15







1




1





Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

– Paulw11
Nov 14 '18 at 20:10






Yes, you can persist these identifiers for use with retrievePeripheralWithIdentifiers, for example. I believe the identifier will only change when the iOS device is erased (and possibly after "reset network settings")

– Paulw11
Nov 14 '18 at 20:10














Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

– Orion Edwards
Nov 14 '18 at 20:46





Thanks! - Do you happen to have any reference to link to for this? Either way is fine, if you post this as an answer I'll upvote and accept it

– Orion Edwards
Nov 14 '18 at 20:46













I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

– Paulw11
Nov 14 '18 at 20:58





I would have to search to find a reference but I have certainly observed it to be stable over a period of many months and across device restarts and even iOS upgrades.

– Paulw11
Nov 14 '18 at 20:58













I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

– Sam
Nov 14 '18 at 22:14





I too can confirm it is stable for a long period of time. At first I even thought is was a unique identifier over all phones. Only to realise later it was tied to the phone.

– Sam
Nov 14 '18 at 22:14













If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

– Larme
Nov 15 '18 at 15:15





If I remember correctly, if you pair with it, it will be stable (or almost stable). But if you don't, it might change after 15 minutes (more or less).

– Larme
Nov 15 '18 at 15:15












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307876%2fis-the-device-uuid-assigned-by-ios-to-ble-devices-stable-over-time%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307876%2fis-the-device-uuid-assigned-by-ios-to-ble-devices-stable-over-time%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo