Created
June 11, 2018 17:26
-
-
Save KazuyukiEguchi/8d90fe05b217916ccd5a19431fa9e6d9 to your computer and use it in GitHub Desktop.
Android Things 1.0.1で、iBeaconの信号を受信してみる ref: https://qiita.com/KazuyukiEguchi/items/e48ae81f004b5183f08d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="jp.eguchi.android.androidthingstest4"> | |
<uses-feature android:name="android.hardware.bluetooth_le" /> | |
<uses-permission android:name="android.permission.BLUETOOTH" /> | |
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> | |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> | |
<application> | |
<uses-library android:name="com.google.android.things" /> | |
<activity android:name=".MainActivity"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.IOT_LAUNCHER" /> | |
<category android:name="android.intent.category.DEFAULT" /> | |
</intent-filter> | |
</activity> | |
</application> | |
</manifest> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
06-11 17:12:33.607 6418-6418/jp.eguchi.android.androidthingstest4 I/InstantRun: starting instant run server: is main process | |
06-11 17:12:33.663 6418-6418/jp.eguchi.android.androidthingstest4 D/debug: onCreate() | |
06-11 17:12:33.671 6418-6418/jp.eguchi.android.androidthingstest4 D/BluetoothAdapter: isLeEnabled(): ON | |
06-11 17:12:33.677 6418-6431/jp.eguchi.android.androidthingstest4 D/BluetoothLeScanner: onScannerRegistered() - status=0 scannerId=11 mScannerId=0 | |
06-11 17:12:33.951 6418-6418/jp.eguchi.android.androidthingstest4 D/vndksupport: Loading /vendor/lib/hw/[email protected] from current namespace instead of sphal namespace. | |
06-11 17:12:36.348 6418-6418/jp.eguchi.android.androidthingstest4 D/debug: CD:A3:5A:BB:19:82,rssi=-81,b9407f30-f5f8-466e-aff9-25556b57fe6e,2***6,3**2 | |
06-11 17:12:41.446 6418-6418/jp.eguchi.android.androidthingstest4 D/debug: ED:4D:1C:58:34:6E,rssi=-74,b9407f30-f5f8-466e-aff9-25556b57fe6e,1***1,3***8 | |
06-11 17:12:41.485 6418-6418/jp.eguchi.android.androidthingstest4 D/debug: E9:67:63:C7:4B:BA,rssi=-77,b9407f30-f5f8-466e-aff9-25556b57fe6e,8**1,1***4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package jp.eguchi.android.androidthingstest4 | |
// Android Things 1.0.1で、iBeaconの信号を受信してみる | |
// Progmramed by Kazuyuki Eguchi | |
import android.app.Activity | |
import android.bluetooth.BluetoothManager | |
import android.bluetooth.le.ScanCallback | |
import android.bluetooth.le.ScanResult | |
import android.content.Context | |
import android.os.Bundle | |
import android.util.Log | |
class MainActivity : Activity() { | |
private val TAG = "debug" | |
private lateinit var bluetoothManager: BluetoothManager | |
private val mscanReceiver = object : ScanCallback() { | |
override fun onScanFailed(errorCode: Int) { | |
super.onScanFailed(errorCode) | |
Log.d(TAG,"onScanFailed:" + errorCode) | |
} | |
override fun onScanResult(callbackType: Int, result: ScanResult?) { | |
super.onScanResult(callbackType, result) | |
val datas = result!!.scanRecord!!.bytes | |
if((datas.get(5).compareTo(0x4c) == 0) | |
&& (datas.get(6).compareTo(0x00) == 0) | |
&& (datas.get(7).compareTo(0x02) == 0) | |
&& (datas.get(8).compareTo(0x15) == 0) | |
) { | |
var uuid = "%02x".format(datas.get(9)) + "%02x".format(datas.get(10)) + "%02x".format(datas.get(11)) + "%02x".format(datas.get(12)) | |
uuid = uuid + "-%02x".format(datas.get(13)) + "%02x".format(datas.get(14)) | |
uuid = uuid + "-%02x".format(datas.get(15)) + "%02x".format(datas.get(16)) | |
uuid = uuid + "-%02x".format(datas.get(17)) + "%02x".format(datas.get(18)) | |
uuid = uuid + "-%02x".format(datas.get(19)) + "%02x".format(datas.get(20)) + "%02x".format(datas.get(21)) + "%02x".format(datas.get(22)) + "%02x".format(datas.get(23)) + "%02x".format(datas.get(24)) | |
val major = "%02x".format(datas.get(25)) + "%02x".format(datas.get(26)) | |
val minor = "%02x".format(datas.get(27)) + "%02x".format(datas.get(28)) | |
Log.d(TAG,result.device.address + ",rssi=" + result.rssi + "," + uuid + "," + Integer.parseInt(major,16) + "," + Integer.parseInt(minor,16)) | |
} | |
} | |
} | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
Log.d(TAG,"onCreate()") | |
bluetoothManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager | |
val bluetoothAdapter = bluetoothManager.adapter | |
bluetoothAdapter.bluetoothLeScanner.startScan(mscanReceiver) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment