質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.80%

pybluez iphoneのデバイス名を取得したい (raspberry pi 3+)

受付中

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,473

Henjin213

score 16

プログラミング、Python、ラズパイ(linux)初心者です。特にラズパイは二日前手に入れたばかりです。
pybluez を使って、近くにあるbluetooth機器のデバイス名の取得をしたいのですが、macbook pro, macbook airのデバイス名しか取得されず、みたところおそらくiphoenは以下のリストに入っていないようです。
もしかしたらPython側の問題ではなくハードの問題では?とおもいつつも、質問させていただきます。
どのようにしたらiphoneを検出して、デバイス名を表示できるでしょうか。

実行環境:
raspberry pi 3+
raspbian 
python 2.7.16

from bluetooth.bie import DiscoveryService
search = DiscoveryService()
device = search.discover(2)

for i in device.items():
    print(bluetooth.lookup_name(i[0]))

実行結果:(例)
None
None
None
〜〜のmacbook
None
None
〜〜のmacbook Air
None
None...

よろしくおねがいします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

Henjin213さん、

通常のBluetoothと BLE(Bluetooth Low Energy)は別のプロトコルのようになっています。
↑のコードでは、BLEを使用していますが、試したところ、同様にiPhoneは見つかりませんでした。
通常のBluetoothのほうを使用することで、見つけることができました。

  • コード例 (https://github.com/pybluez/pybluez の example を python2へ)
import bluetooth
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print("Found {} devices.".format(len(nearby_devices)))
for addr, name in nearby_devices:
    print(addr, name)
  • 実行例
pi@raspberrypi:~ $ sudo python2
Python 2.7.13 (default, Sep 26 2018, 18:42:22) 
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bluetooth
>>> nearby_devices = bluetooth.discover_devices(lookup_names=True) # 実行した直後にiPhoneのBluetooth設定をひらく
>>> print("Found {} devices.".format(len(nearby_devices)))
Found 3 devices.
>>> for addr, name in nearby_devices:
...     print(addr, name)
... 
('xx:xx:xx:xx:xx:xx', 'iPhone-Hogehoge') 
('yy:yy:yy:yy:yy:yy', 'mac-123')
('zz:zz:zz:zz:zz:zz', 'Windows-456')
>>> 
>>> quit()
pi@raspberrypi:~ $ 

ところで、bluetooth.bieとコードにありますが、bluetooth.bleですよね?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/02/05 23:51

    コメント失礼します。
    mt08さんの書かれたコードで、「実行直後にbluetoothの設定を開く」とありますが、開かずにiPhoneを検知することは可能でしょうか…?
    回答の程よろしくお願いします。

    キャンセル

  • 2020/02/06 10:36

    @hideyuki_akaさん、

    よく覚えてないですが、"iPhoneのBluetooth設定をひらく"のは、強制的にBluetoothの信号を出させて、ラズパイがすぐ見つけやすくなるためだったと思います。
    しばら~く放っておけば、iPhoneが信号を出したときに、ラズパイがキャッチしませんかね?

    キャンセル

  • 2020/02/06 13:09

    回答ありがとうございます。
    while文で見つかるまでループさせたのですが、キャッチされませんでした。
    iPhoneはbluetoothをオンにしたまま画面ロック状態です。

    キャンセル

  • 2020/02/07 01:23

    iPhoneが画面ロックではBluetoothの検出用の信号がでないのかもしれませんね。

    キャンセル

0

LE Privacyに従っているiPhoneの名前はリストされませんね。
ペアリングするとリストされます。

私が試した時には、Bluetooth Classicのデバイスはリストされました。

LE Privacyでは、デバイス名や固定MACアドレスはアドバタイズしません。
以前、軍人のiPhoneがスキャンされて、平日は6時に基地を出て保育所に寄って帰るなどの行動パターンがトレースされた事で、LE Privacyというルールが出来ました。
あまり持ち歩かないデスクトップや、MacBookにはこのルールは適応されていません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る