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

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

ただいまの
回答率

90.50%

  • Android

    6527questions

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

  • Bluetooth

    233questions

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

androidアプリ+bluetooth通信についての質問

解決済

回答 2

投稿 編集

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

前提・実現したいこと

androidアプリでBluetoothにデータを書き込み、Bluetoothからデータを受信してアプリにデータを表示したいです。

サンプルソースを選択してデバックすると動作するのですが、新規のアプリにコピー&ペーストするとエラーが出ているためBluetoothデバイスの検索がうまくいきません。強制終了してしまいます。

ソース自体はandroidアプリ開発のセミナで使ったサンプルをもとにしています。
java言語、androidアプリに関しては初めて2ヶ月です。
私以外わかる人は社内にいません。

困っています。わかるかた教えていただけないでしょうか。

発生している問題・エラーメッセージ

ソースコードとバイトコードが合いませんというエラーとandroid studioのSDKで自動生成されるソースが赤くなってしまいます。

該当のソースコード

エラーが発生した場所
イメージ説明
イメージ説明

コピーしたソースコード
イメージ説明
イメージ説明

SDKの設定
イメージ説明

試したこと

1.最新のJDKをインストール。(jdk1.8.0_121)
2.環境変数の設定を修正。
JAVA_HOMEの設定がユーザー環境設定(画面上側)ではなく、システム環境設定(画面下側)に   入っていた。
3.Android Studioを再インストール(Version 2.3)
・SDKのインストール先を変更。("Users"のディレクトリを"ユーザー"と表示している場所があ   るので、日本語要素を排除してみた)
C:\Users\Gijuta\AppData\Local\Android\sdk

C:\Android\sdk
・インストール後のアップデートを行わない。(アップデートするか聞かれなかった。今後も注   意)
4.SDKマネージャーの設定
●SDK Platformsタブ
・Android 6.0(Marshmallow)に追加チェック

●SDK Toolsタブ
・Google USB Driverに追加チェック
・Support Repositoryの下記項目に追加チェック
・ConstraintLayout for Android
・Solver for ConstraintLayout

5.プロジェクト起動時に出てくるエラーは、
エラー文の下の青文字をクリックするとAndroid Studioが自動で対応してくれるので任せる。
6.スマートデバイスをPCに接続した際に表示される
「ファイル転送~~」の問いにはキャンセルする。
7.Clean Projectの実施(Buildメニュー内にあり)
8.Rebuild Projectの実施(Buildメニュー内にあり)
9.既にデバイスにインストールされているアプリをアンインストールする。
↓下記エラーに対する処置として毎回アプリを削除しています。
Error while executing: am startservice com.tool.toho.gijutu3.toho_ble_tool/com.android.tools.fd.runtime.InstantRunService
Starting service: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tool.toho.gijutu3.toho_ble_tool/com.android.tools.fd.runtime.InstantRunService }
Error: Not found; no service started.

補足情報(言語/FW/ツール等のバージョンなど)

SDKバージョンはmini=23で25.0.3でビルドしています。
ZenPad8.0 androidバージョン6.0 bletoothバージョン23.51の実機をしようしてデバックしています。

追記項目

03-17 11:04:56.574 882-882/? E/WifiTrafficPoller: TRAFFIC_STATS_POLL true Token 249 num clients 9
03-17 11:04:56.575 882-882/? E/WifiTrafficPoller:  packet count Tx=307899 Rx=2870259
03-17 11:04:56.575 882-882/? E/WifiTrafficPoller: notifying of data activity 1
上記のエラーログが存在します。それ以外は特に出ていません。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • yona

    2017/03/17 11:17

    強制終了したときのエラーログはこれだけですか?

    キャンセル

  • GTOHOElectronic

    2017/03/17 11:27

    はい。特に上記の記載以外のログエラーは発生していません。

    キャンセル

  • GTOHOElectronic

    2017/03/17 12:02

    端末のBluetoothは有効にしています。コードでのBluetooth権限はManifest.xmlでパーミッションを許可するだけですよね。

    キャンセル

回答 2

check解決した方法

0

Bluetoothのパーミッションの許可をするとともにandroid 6.0から位置情報のパーミッションの権限を有効にすること端末の位置情報設定をONにすることが必要になったため下記コードを入れることによりデバイス検索が可能になりました。

  // フィールド定義
   private static final int REQUEST_PERMISSIONS = 1;
     private static final int SALVER_MARSHMALLOW = 23;

  @Override
    public void onResume(){
        super.onResume();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            this.requestBlePermission();
        }
    }

    @TargetApi(SALVER_MARSHMALLOW)
    private void requestBlePermission() {
        // 権限が許可されていない場合はリクエスト
        if(checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED){
            requestPermissions(new String[]{android.Manifest.permission.ACCESS_COARSE_LOCATION},REQUEST_PERMISSIONS);
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[]permissions,int[] grantResults){
        // 権限リクエストの結果を取得する
        if(requestCode == REQUEST_PERMISSIONS) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(this, "位置情報の権限を許可しました", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "位置情報の権限が拒否されました", Toast.LENGTH_SHORT).show();

            }
        }
        else{
            super.onRequestPermissionsResult(requestCode,permissions,grantResults);
        }
    }

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

考えられることは下記の通りです。
・セミナー時の開発環境と現在の開発環境を比べて違いを探す。
・Android端末の設定からアプリ設定を開き、Bluetoothの権限が有効になっているかを確認する。
・セミナーの主催者に確認する。

また、有料セミナーの場合はコードを公開することを禁じている可能性があるので注意が必要です。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/03/17 12:09

    Android 6ではマニフェストにパーミッションを書いただけではダメです。
    Android端末のアプリ設定から許可を与えるか、コード内でユーザーに許可を求める処理を実装してください。
    また、回答に対するコメントは回答のコメント欄に記載してください。

    キャンセル

  • 2017/03/17 12:56

    すみません。この質問で初めて利用するのでサイトの使い方がわからなかったので、ご指摘ありがとうございます。
    「Android端末のアプリ設定から許可を与えるか、コード内でユーザーに許可を求める処理を実装してください。」というのは回答に対してコードは上記4枚目の画像のソースコードでいいですよね。

    キャンセル

  • 2017/03/17 13:01

    ありますね。
    Bluetoothの権限を与えるかどうかのダイアログは出ますか?

    キャンセル

  • 2017/03/17 13:13 編集

    それは端末のBluetoothがONでもOFFの設定になっていても出るのでしょうか。

    キャンセル

  • 2017/03/17 13:51

    BluetoothのオンオフとBluetooth権限のオンオフは関係ありません。ダイアログがでるかどうかはプログラム次第なので、私に聞かれてもわかりません。
    とにかく、Android端末のアプリ設定からパーミッションを与えてください。その結果をコメントしてください。

    キャンセル

  • 2017/03/17 14:45

    Bluetoothのオンオフ確認と同じに作っているのでオフでない限りダイヤログは表示しません。

    キャンセル

  • 2017/03/17 14:58

    そのダイアログはBluetoothのオンオフを切り替えるだけですよね?
    Bluetoothの権限についてのダイアログは出ましたか?
    私のコメントに対する作業を行ってからコメントしてください。時間のむだです。

    キャンセル

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

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

関連した質問

  • 解決済

    xcode8.0 :unexpectedly found nil while unwrapping ...

    xcode8.0 + iOS10の環境で、一つの画面上に、2つのtableviewを配置し、一つにはBLEの名前とUUIDを表示。もう一つのtableviewにはBLEが提供するサ

  • 受付中

    Monaca プッシュ通知

    Monaca マネジメントAPIを用いて、外部サーバーより特定のデバイス(今回はデバッガー)にプッシュ通知しようとしております。 以下の流れで試しているのですが、どうしてもエラー

  • 受付中

    windows上でmecabとpython3をバインディングさせる

    前提・実現したいこと windows上でmecabとpython3をバインディングさせたい 発生している問題・エラーメッセージ こちらの方の記事を参考に( http://

  • 受付中

    Android: NFCによるアプリ起動とBLE接続

    実現したいこと NFCタグの読み取りをトリガーにアプリを起動し、BLEのペアリングを開始したいです。 下記に記載した通り、アプリ起動とBLE接続共に個別には実現可能だという認識

  • 解決済

    フォントを拡大、縮小したい

    最近Android Studioを使い始めたのですが macで ピンチイン、ピンチアウトを使った ソースコードの拡大縮小はできるのでしょうか?? デフォルトだとできないので

  • 解決済

    Android エミュレーターが起動しない

    Android Studio 2.3.3 にアップデート後、Android エミュレーターが起動しなくなってしまいました。 アップデート前は使えていました。 Stable chan

  • 解決済

    ASUS ZenPadで、Camera2APIで、1分動画を2時間分撮影したいです。

    Nexsus 5Xでは、1分動画を、2時間ぶん、撮影することができました。 しかし、ZenPadでは、エラーが出ます。 このようなエラーが繰り返して表示されます。 参

  • 解決済

    AndroidStudioでListActivityを作る方法がわかりません

    山田祥寛さんの「はじめてのAndroidアプリ開発 第2版」という本を読みながら、アプリ開発の勉強をしています。 同著のセクション4に「ListActivity」の紹介があるの

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

  • Android

    6527questions

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

  • Bluetooth

    233questions

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