2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BluetoothからiPhoneを識別することはできなかったって話

Last updated at Posted at 2020-09-25

#背景
スマホが発信するBluetoothを検知すればICカードとか使わないで入退室通知ができるんじゃないかと思ったので色々調べてた

#iosはペアリングするまでランダムなMACアドレスを送信する
らしいです。

参照:https://www.quora.com/Do-Bluetooth-devices-have-a-persistent-ID-like-a-MAC-address

実際 BluetoothLEAdvertisementReceivedEventArgs を使用して BluetoothAddress を取得してみましたが、iPhone の Bluetooth をオンにした時に検出されるアドレスは、毎回ランダムな2つの BluetoothAddress と数分置きにランダムになる一つの BluetoothAddress (こいつはUUIDを持ってた。UUIDも数分置きに一緒に変わる) でした。

ちなみに検索履歴の彼方に行ってしまってどこで見かけたかは分かりませんが、以下のコードで BluetoothLEAdvertisementReceivedEventArgs.BluetoothAddress からMACアドレスを取得できました。

private void hoge(BluetoothLEAdvertisementReceivedEventArgs args)
{
     string macAddres = string.Join(":", BitConverter.GetBytes(args.BluetoothAddress).Reverse().Select(x => x.ToString("X2"))).Substring(6);
}

#iosアプリから制作するなら、BluetoothでiPhoneを識別できるのかも
2014.04.03 マーケティングブログ iOS/Androidで端末を識別するIDまとめ https://iridge.jp/blog/201404/4836/

によると、どうやら簡単に端末を追跡できるものはセキュリティ的によろしくない、という流れがあったようです。
iosにも、UDID、MACアドレス、など端末を識別するIDはありますが、2014年の時点でUDID、MACアドレスは既に自由に使用できなくなり、代わりにアプリで使用できる identifierForVendor(IDFV)、AdvertisingIdentifier が提供されたとあります。

僕がやりたかったBluetoothでiPhoneを識別して入退室管理、もアプリ制作から取り組めばできるのかもしれません。

#おわりに

僕はアンドロイドは持ってないのでアンドロイドで検証はしていませんが、少なくとも iPhone をペアリングなし Bluetooth で識別するのは無理っぽい。無念

もしペアリングなし Bluetooth で iPhone を識別する方法を知っているという方がいたら、コメントしてくださると嬉しいです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?