🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

644閲覧

bluetooth Intentにペアリング済みのデバイスが出ない

REIA

総合スコア27

Bluetooth

Bluetoothとは短距離の間でデータを交換するための無線通信規格である。固定・モバイル両方のデバイスから、短波の電波送信を行うことで、高いセキュリティをもつパーソナルエリアネットワーク(PAN)を構築する。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

1クリップ

投稿2019/12/04 00:57

編集2019/12/04 02:26

現在学校で卒業制作を作っていてその制作物のエラーです。
最終的にはraspberry piがカメラで撮った画像をhtmlに入れてapacheを起動してそのURLをandroidに送るという形です。(確認頻度はすごく高いです。)
今回問題が発生しているのはraspberry piをwifiに参加させるうえでssh無しでwifiに参加させないといけないので、ssidとパスワードをbluetoothでandroidから送ろうと思っています。
外部ストレージにファイルを作り送るようのintentに遷移したのはいいのですが、raspberry piが出ません。
ファイル保存とIntentのコードは以下になります。

Java

1private File createFile(String filename,String ... datas){ 2 filename+=".wifi"; 3 String content=""; 4 for(String data:datas){ 5 content+=data+"\n"; 6 } 7 File save=getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS); 8 File file=new File(save,filename); 9 try(FileOutputStream out = new FileOutputStream(file,true); 10 OutputStreamWriter writer=new OutputStreamWriter(out,StandardCharsets.UTF_8); 11 BufferedWriter bf=new BufferedWriter(writer); 12 ){ 13 bf.write(content); 14 bf.flush(); 15 return file; 16 }catch (IOException e){ 17 Log.d(this.getClass().getSimpleName(),e.getMessage()); 18 } 19 return null; 20 } 21

Java

1public void onClick(View v){ 2 switch (v.getId()){ 3 case R.id.submit: 4 File file=this.createFile("add_wifi",this.SSID.getText().toString(),this.password.getText().toString()); 5 if(file!=null){ 6 Intent test=new Intent(); 7 test.setAction(Intent.ACTION_SEND); 8 test.setPackage("com.android.bluetooth"); 9 test.setType("text/*"); 10 test.putExtra(Intent.EXTRA_STREAM,FileProvider.getUriForFile(settings.this,getApplicationContext().getPackageName()+".provider",file)); 11 startActivity(test); 12 } 13 14 break; 15}

この方法で出すと自分の使っているノートパソコンは出ます。
また、それに送ると受け取れる状態ならばちゃんと保存できます。
ですが、raspberry piがいません。
また、これを実行したときにノートパソコンの名前は出ますが、純正の設定アプリ→bluetooth のところを見るとノートパソコンとペアリングが解除されている状態です(1度して削除しました。パソコン側はペアリング状態と出ています。)
だいぶ前のbluetooth状態を引き継いでいるのかはわかりませんが、おそらくペアリングリストが更新されていません。

ご回答のほど、よろしくお願いいたします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vanderlvov

2019/12/04 01:59

すみませんが、質問への回答にならないけど、ただアプローチに関して確認したかったんです。 RPIからカメラのストリーミングすると、ストリーミングのURLが決まっていますね:http://{RPIのIP}/{resource} RPIを外部のwifiに繋げるより、RPI事態をアクセスポイントにしたら、Androidをこのアクセスポイントに接続すれば、カメラストリーミングにアクセスすればいかがでしょうか。
REIA

2019/12/04 02:23

回答ありがとうございます。 まず訂正として、外部のwifiではなくそれぞれの家のwifiにつなぐ形です。 商品ではないですが、商品と仮定して購入して家のwifiにつなぐためにbluetooth送信を使います。 カメラに関しては消費電力等も考えてストリームではなく撮って保存という形にしようと思っています。 ストリームにしてhostapdとかでアクセスポイントにすると思うんですけど、その場合は確認する際にwifiを切り替える必要が出てきませんか? 質問に書いていないのが問題ですが、確認頻度は高いです。
vanderlvov

2019/12/04 02:50

コメントありがとうございます。そうですね、RPIをAPにするとAndroidをRPIのWIFIに切り替える必要があります。
guest

回答2

0

自己解決

皆様、ご回答ありがとうございました。
皆様のご提示の方法では解決することはできませんでしたが、
hciconfigでbluetoothクラスの値をいじることで、androidから発見することができました。
ご協力ありがとうございました。

投稿2019/12/06 06:01

REIA

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

この記事を確認してみてください、Pair a Raspberry Pi and Android phone
RPI側のエージェントは動いているかどうか。

On your Raspberry Pi:

Type bluetoothctl and press Enter to open Bluetooth control
At the [bluetooth]# prompt enter the following commands:

discoverable on pairable on agent on default-agent

次のステップはこのフォーラム:
Can't connect android over bluetooth

投稿2019/12/04 02:47

vanderlvov

総合スコア687

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問