質問編集履歴

3 コードを追加

y.nakamura

y.nakamura score 186

2019/05/30 09:20  投稿

Android 別端末にBlutetooth接続できない
Androidから別端末へBluetooth接続し、メッセージを送信するアプリケーションを作成しています。
Androidアプリの`Serial Bluetooth Terminal`を使用すると端末に接続できるのですが、自作アプリだと接続できないのでご助力お願いします。
`Serial Bluetooth Terminal`では機器をスキャンした後に以下の内容で接続すると、通信を開始できました。
| ITEM | VALUE |
| --- | --- |
| MAC ADDRESS | 90:FD:9F:A5:F4:2A |
| Service UUID | 4880c12c-fdcb-4077-8920-a450d7f9b907 |
| Read characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
| Write characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
以下ソースコードです。ボタンを押したら接続を開始します。
MainActivity.kt  
```kotlin
class MainActivity : AppCompatActivity() {
   companion object {
       const val MAC_ADDRESS = "90:FD:9F:A5:F4:2A"
       const val SERVICE_UUID = "4880c12c-fdcb-4077-8920-a450d7f9b907"
       const val READ_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
       const val WRITE_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
   }
   override fun onCreate(savedInstanceState: Bundle?) {
       // Setup the window
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
       setResult(Activity.RESULT_CANCELED)
       button_connect.setOnClickListener {
           bt_connect()
       }
   }
   private fun bt_connect(){
       val btAdapter = BluetoothAdapter.getDefaultAdapter()
       //端末がBluetoothに対応しているか
       if (btAdapter == null) {
           Toast.makeText(this, "Bluetooth対応機器ではありません", Toast.LENGTH_SHORT).show()
           return
       }
       //Bluetoothが有効であるか
       if (!btAdapter.isEnabled) {
           Toast.makeText(this, "BluetoothをONにします", Toast.LENGTH_SHORT).show()
           btAdapter.enable()
       }
       // Device検索
       val btDevice = btAdapter.getRemoteDevice(MAC_ADDRESS)
       //接続確立待機
       try {
           Thread.sleep(2000)
       } catch (e: InterruptedException) {
           e.printStackTrace()
           return
       }
       // 接続
       var btSocket: BluetoothSocket? = null
       try {
           btSocket = btDevice.createRfcommSocketToServiceRecord(UUID.fromString(SERVICE_UUID))
           btSocket.connect()
       } catch (e: IOException) {
           Toast.makeText(applicationContext, "接続失敗しました", Toast.LENGTH_SHORT).show()
           e.printStackTrace()
           return
       }
       // メッセージ送信
       try{
           val outputStream : OutputStream = btSocket.outputStream
           outputStream.write("Test".toByteArray())
       } catch (e: IOException) {
           Toast.makeText(applicationContext, "送信失敗しました", Toast.LENGTH_SHORT).show()
           e.printStackTrace()
           return
       }
       Toast.makeText(applicationContext, "送信しました", Toast.LENGTH_SHORT).show()
   }
}
```  
 
activity_main.xml  
```xml  
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
             xmlns:tools="http://schemas.android.com/tools"  
             android:layout_width="match_parent"  
             android:layout_height="wrap_content"  
             android:layout_margin="10dp"  
             android:orientation="vertical">  
 
   <Button  
           android:id="@+id/button_connect"  
           android:layout_width="wrap_content"  
           android:layout_height="wrap_content"  
           android:text="Connect"  
           android:textSize="18sp"/>  
</LinearLayout>  
```
  • Android

    9508 questions

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

  • Bluetooth

    384 questions

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

  • Kotlin

    1445 questions

    Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

2 タイトル変更

y.nakamura

y.nakamura score 186

2019/05/29 18:03  投稿

Android Blutetooth接続できない
Android 別端末にBlutetooth接続できない
Androidから別端末へBluetooth接続し、メッセージを送信するアプリケーションを作成しています。
Androidアプリの`Serial Bluetooth Terminal`を使用すると端末に接続できるのですが、自作アプリだと接続できないのでご助力お願いします。
`Serial Bluetooth Terminal`では機器をスキャンした後に以下の内容で接続すると、通信を開始できました。
| ITEM | VALUE |
| --- | --- |
| MAC ADDRESS | 90:FD:9F:A5:F4:2A |
| Service UUID | 4880c12c-fdcb-4077-8920-a450d7f9b907 |
| Read characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
| Write characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
以下ソースコードです。ボタンを押したら接続を開始します。
```kotlin
class MainActivity : AppCompatActivity() {
companion object {
const val MAC_ADDRESS = "90:FD:9F:A5:F4:2A"
const val SERVICE_UUID = "4880c12c-fdcb-4077-8920-a450d7f9b907"
const val READ_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
const val WRITE_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
}
override fun onCreate(savedInstanceState: Bundle?) {
// Setup the window
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setResult(Activity.RESULT_CANCELED)
button_connect.setOnClickListener {
bt_connect()
}
}
private fun bt_connect(){
val btAdapter = BluetoothAdapter.getDefaultAdapter()
//端末がBluetoothに対応しているか
if (btAdapter == null) {
Toast.makeText(this, "Bluetooth対応機器ではありません", Toast.LENGTH_SHORT).show()
return
}
//Bluetoothが有効であるか
if (!btAdapter.isEnabled) {
Toast.makeText(this, "BluetoothをONにします", Toast.LENGTH_SHORT).show()
btAdapter.enable()
}
// Device検索
val btDevice = btAdapter.getRemoteDevice(MAC_ADDRESS)
//接続確立待機
try {
Thread.sleep(2000)
} catch (e: InterruptedException) {
e.printStackTrace()
return
}
// 接続
var btSocket: BluetoothSocket? = null
try {
btSocket = btDevice.createRfcommSocketToServiceRecord(UUID.fromString(SERVICE_UUID))
btSocket.connect()
} catch (e: IOException) {
Toast.makeText(applicationContext, "接続失敗しました", Toast.LENGTH_SHORT).show()
e.printStackTrace()
return
}
// メッセージ送信
try{
val outputStream : OutputStream = btSocket.outputStream
outputStream.write("Test".toByteArray())
} catch (e: IOException) {
Toast.makeText(applicationContext, "送信失敗しました", Toast.LENGTH_SHORT).show()
e.printStackTrace()
return
}
Toast.makeText(applicationContext, "送信しました", Toast.LENGTH_SHORT).show()
}
}
```
  • Android

    9508 questions

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

  • Bluetooth

    384 questions

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

  • Kotlin

    1445 questions

    Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1 項目名変更

y.nakamura

y.nakamura score 186

2019/05/29 18:03  投稿

Android Blutetooth接続できない
Androidから別端末へBluetooth接続し、メッセージを送信するアプリケーションを作成しています。
Androidアプリの`Serial Bluetooth Terminal`を使用すると端末に接続できるのですが、自作アプリだと接続できないのでご助力お願いします。
`Serial Bluetooth Terminal`では機器をスキャンした後に以下の内容で接続すると、通信を開始できました。
| INFO | VALUE |
| ITEM | VALUE |
| --- | --- |
| MAC ADDRESS | 90:FD:9F:A5:F4:2A |
| Service UUID | 4880c12c-fdcb-4077-8920-a450d7f9b907 |
| Read characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
| Write characteristic UUID | fec26ec4-6d71-4442-9f81-55bc21d658d6 |
以下ソースコードです。ボタンを押したら接続を開始します。
```kotlin
class MainActivity : AppCompatActivity() {
   companion object {
       const val MAC_ADDRESS = "90:FD:9F:A5:F4:2A"
       const val SERVICE_UUID = "4880c12c-fdcb-4077-8920-a450d7f9b907"
       const val READ_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
       const val WRITE_CHARACTERISTIC_UUID = "fec26ec4-6d71-4442-9f81-55bc21d658d6"
   }
   override fun onCreate(savedInstanceState: Bundle?) {
       // Setup the window
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
       setResult(Activity.RESULT_CANCELED)
       button_connect.setOnClickListener {
           bt_connect()
       }
   }
   private fun bt_connect(){
       val btAdapter = BluetoothAdapter.getDefaultAdapter()
       //端末がBluetoothに対応しているか
       if (btAdapter == null) {
           Toast.makeText(this, "Bluetooth対応機器ではありません", Toast.LENGTH_SHORT).show()
           return
       }
       //Bluetoothが有効であるか
       if (!btAdapter.isEnabled) {
           Toast.makeText(this, "BluetoothをONにします", Toast.LENGTH_SHORT).show()
           btAdapter.enable()
       }
       // Device検索
       val btDevice = btAdapter.getRemoteDevice(MAC_ADDRESS)
       //接続確立待機
       try {
           Thread.sleep(2000)
       } catch (e: InterruptedException) {
           e.printStackTrace()
           return
       }
       // 接続
       var btSocket: BluetoothSocket? = null
       try {
           btSocket = btDevice.createRfcommSocketToServiceRecord(UUID.fromString(SERVICE_UUID))
           btSocket.connect()
       } catch (e: IOException) {
           Toast.makeText(applicationContext, "接続失敗しました", Toast.LENGTH_SHORT).show()
           e.printStackTrace()
           return
       }
       // メッセージ送信
       try{
           val outputStream : OutputStream = btSocket.outputStream
           outputStream.write("Test".toByteArray())
       } catch (e: IOException) {
           Toast.makeText(applicationContext, "送信失敗しました", Toast.LENGTH_SHORT).show()
           e.printStackTrace()
           return
       }
       Toast.makeText(applicationContext, "送信しました", Toast.LENGTH_SHORT).show()
   }
}
```
  • Android

    9508 questions

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

  • Bluetooth

    384 questions

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

  • Kotlin

    1445 questions

    Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る