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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Bluetooth

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

Android

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

Q&A

解決済

1回答

2550閲覧

Android SDKのBluetoothLeGattサンプルコードの解読

hillacken

総合スコア359

Bluetooth

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

Android

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

0グッド

0クリップ

投稿2017/04/07 02:57

onCreate()時のBluetooth対応チェックについて。

マニフェストファイルでbluetooth le対応かどうか判定しているのに、
DeviceScanActivity.javaでもbluetooth le対応かどうか判定しています。

DeviceScanActivityの62行目および74行目がtrueになることはあるのでしょうか?
保険でしょうか?

あと、77行目のreturn;はいりますか?


AndroidManifest.xml

xml

1 <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> 2 <uses-permission android:name="android.permission.BLUETOOTH"/> 3 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

DeviceScanActivity.java

java

154 @Override 255 public void onCreate(Bundle savedInstanceState) { 356 super.onCreate(savedInstanceState); 457 getActionBar().setTitle(R.string.title_devices); 558 mHandler = new Handler(); 659 760 // Use this check to determine whether BLE is supported on the device. Then you can 861 // selectively disable BLE-related features. 962 if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { 1063 Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); 1164 finish(); 1265 } 1366 1467 // Initializes a Bluetooth adapter. For API level 18 and above, get a reference to 1568 // BluetoothAdapter through BluetoothManager. 1669 final BluetoothManager bluetoothManager = 1770 (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); 1871 mBluetoothAdapter = bluetoothManager.getAdapter(); 1972 2073 // Checks if Bluetooth is supported on the device. 2174 if (mBluetoothAdapter == null) { 2275 Toast.makeText(this, R.string.error_bluetooth_not_supported, Toast.LENGTH_SHORT).show(); 2376 finish(); 2477 return; 2578 } 2679 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

>DeviceScanActivityの62行目および74行目がtrueになることはあるのでしょうか?
>保険でしょうか?
AndroidManifest.xmlに記載しているほうは
「このアプリはbluetooth_le機能が必要ですよ」という宣言です。
bluetooth_le機能を持たない端末にはそもそもインストールができなくなると思います。
ただしこの宣言がなくても動作はします。

対して62行目は「この端末はBLE機能を持つか」の判定です。
開発者がAndroidManifest.xmlにuses-featureを記載していない場合もあるので、ここではじく必要があります。

74行目に当たるケースは無いと思いますが、端末を作った人がどう作っているかはわからないのでまぁ保険だと思います。

finish()はActivityを終了させるメソッドですが、プログラム自体は止まりません。
returnを付けなければその先のプログラムも実行されてしまいますので必要です。

投稿2017/04/07 05:58

Clor

総合スコア883

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

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

hillacken

2017/04/10 22:59

ありがとうございます。 機能が複数あるアプリの場合、Manifestにすべての制約を記載せず、インストールまではできるようにさせる場合もあるようですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問