From 3d447ca0d0e0e89b917104d2ff9d3d579e71d154 Mon Sep 17 00:00:00 2001 From: Rouddy Date: Fri, 18 Sep 2020 08:24:54 +0900 Subject: [PATCH 01/16] =?UTF-8?q?gradle=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorigoble/build.gradle | 4 ++-- app/build.gradle | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/algorigoble/build.gradle b/algorigoble/build.gradle index deaa79d..2317d8c 100644 --- a/algorigoble/build.gradle +++ b/algorigoble/build.gradle @@ -86,8 +86,8 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.72' diff --git a/app/build.gradle b/app/build.gradle index 0644a03..e59a525 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,11 +34,11 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.constraintlayout:constraintlayout:2.0.1' testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.2.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation 'androidx.recyclerview:recyclerview:1.1.0' From e5d86b7b8b4a9ad4ec11e2824b8b6704314cf4cc Mon Sep 17 00:00:00 2001 From: Rouddy Date: Mon, 7 Dec 2020 09:43:20 +0900 Subject: [PATCH 02/16] =?UTF-8?q?device=20name=20scan=20filter=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/algorigo/algorigoble/impl/BleScanOptionsConverter.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/algorigoble/src/main/java/com/algorigo/algorigoble/impl/BleScanOptionsConverter.kt b/algorigoble/src/main/java/com/algorigo/algorigoble/impl/BleScanOptionsConverter.kt index d674f90..c61e845 100644 --- a/algorigoble/src/main/java/com/algorigo/algorigoble/impl/BleScanOptionsConverter.kt +++ b/algorigoble/src/main/java/com/algorigo/algorigoble/impl/BleScanOptionsConverter.kt @@ -36,7 +36,9 @@ object BleScanOptionsConverter { fun convertScanFilters(filters: Array): List { return filters.map { ScanFilter.Builder().apply { - setDeviceName(it.deviceName) + it.deviceName?.let { deviceName -> + setDeviceName(deviceName) + } it.deviceAddress?.let { deviceAddress -> setDeviceAddress(deviceAddress) } From d21d0785c4d38d299bd45e2c554e78435b841ec4 Mon Sep 17 00:00:00 2001 From: Rouddy Date: Mon, 7 Dec 2020 09:46:25 +0900 Subject: [PATCH 03/16] =?UTF-8?q?=EA=B6=8C=ED=95=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorigoble/src/main/AndroidManifest.xml | 1 + .../main/java/com/algorigo/algorigoblelibrary/MainActivity.kt | 2 +- .../com/algorigo/algorigoblelibrary/util/PermissionUtil.java | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/algorigoble/src/main/AndroidManifest.xml b/algorigoble/src/main/AndroidManifest.xml index bb0e232..81cc60d 100644 --- a/algorigoble/src/main/AndroidManifest.xml +++ b/algorigoble/src/main/AndroidManifest.xml @@ -10,5 +10,6 @@ + diff --git a/app/src/main/java/com/algorigo/algorigoblelibrary/MainActivity.kt b/app/src/main/java/com/algorigo/algorigoblelibrary/MainActivity.kt index 5067e41..1b810b2 100644 --- a/app/src/main/java/com/algorigo/algorigoblelibrary/MainActivity.kt +++ b/app/src/main/java/com/algorigo/algorigoblelibrary/MainActivity.kt @@ -87,7 +87,7 @@ class MainActivity : AppCompatActivity() { // 권한이 없음 -> 퍼미션을 요구 PermissionUtil.requestExternalPermissions( this, - Manifest.permission.ACCESS_COARSE_LOCATION, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION), REQUEST_CODE ) } diff --git a/app/src/main/java/com/algorigo/algorigoblelibrary/util/PermissionUtil.java b/app/src/main/java/com/algorigo/algorigoblelibrary/util/PermissionUtil.java index daf0e10..66c688f 100644 --- a/app/src/main/java/com/algorigo/algorigoblelibrary/util/PermissionUtil.java +++ b/app/src/main/java/com/algorigo/algorigoblelibrary/util/PermissionUtil.java @@ -56,8 +56,8 @@ public void run() { } } - public static void requestExternalPermissions(Activity activity, String permission, final int requestCode) { - requestPermissions(activity, new String[] { permission }, requestCode); + public static void requestExternalPermissions(Activity activity, String[] permissions, final int requestCode) { + requestPermissions(activity, permissions, requestCode); } public static boolean verifyPermission(int[] grantresults) { From bc5869f8504178a853807d6bec4b6266e9ec93ea Mon Sep 17 00:00:00 2001 From: Rouddy Date: Mon, 7 Dec 2020 10:03:39 +0900 Subject: [PATCH 04/16] =?UTF-8?q?sample=20=EC=BD=94=EB=93=9C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=8F=99=EC=9E=91=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../algorigoblelibrary/SampleBleDevice.kt | 38 +--------------- .../SampleBleDeviceActivity.kt | 32 +------------ .../SampleBleDeviceDelegate.kt | 8 ++-- .../res/layout/activity_sample_ble_device.xml | 45 ------------------- 4 files changed, 6 insertions(+), 117 deletions(-) diff --git a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDevice.kt b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDevice.kt index 76c5f45..921464a 100644 --- a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDevice.kt +++ b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDevice.kt @@ -1,56 +1,22 @@ package com.algorigo.algorigoblelibrary +import com.algorigo.algorigoble.BleDevice import com.algorigo.algorigoble.InitializableBleDevice import io.reactivex.Completable import io.reactivex.Observable import io.reactivex.Single import java.util.* -class SampleBleDevice: InitializableBleDevice() { +class SampleBleDevice: BleDevice() { private var version = "" - override fun initializeCompletable(): Completable { - return getVersionSingle()!!.doOnSuccess { version = it }.ignoreElement() - } - override fun onDisconnected() { super.onDisconnected() version = "" } - fun sendDataOn(): Observable? { - return setupNotification(UUID.fromString(UUID_SEND_DATA_ON)) - ?.flatMap { it } - } - - fun setVersionSingle(value: String): Single? { - val byteArray = value.toByteArray(Charsets.UTF_8) - return writeCharacteristic(UUID.fromString(UUID_DATA_VERSION), byteArray) - ?.map { - version = it.contentToString() - version - } - } - - fun getVersionSingle(): Single? { - return readCharacteristic(UUID.fromString(UUID_DATA_VERSION)) - ?.map { - version = it.contentToString() - version - } - } - - fun getVersion(): String { - return version - } - companion object { private val TAG = SampleBleDevice::class.java.simpleName - - const val BLE_NAME = "SampleBle" - - private const val UUID_SEND_DATA_ON = "6e400003-b5a3-f393-e0a9-e50e24dcca9e" - private const val UUID_DATA_VERSION = "9fd42004-e46f-7c9a-57b1-2da365e18fa1" } } \ No newline at end of file diff --git a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceActivity.kt b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceActivity.kt index 799e61d..345dcda 100644 --- a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceActivity.kt +++ b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceActivity.kt @@ -20,37 +20,7 @@ class SampleBleDeviceActivity : AppCompatActivity() { val macAddress = intent.getStringExtra(NAME_MAC_ADDRESS) sampleBleDevice = BleManager.getInstance().getDevice(macAddress) as? SampleBleDevice - periodEdit.setText(sampleBleDevice?.getVersion()?.toString()) - setPeriodBtn.setOnClickListener { - val value = periodEdit.text.toString() - sampleBleDevice?.setVersionSingle(value) - ?.observeOn(AndroidSchedulers.mainThread()) - ?.subscribe({ - periodEdit.setText(it.toString()) - }, { - Log.e(TAG, "", it) - }) - } - getPeriodBtn.setOnClickListener { - periodEdit.setText(sampleBleDevice?.getVersion()?.toString()) - } - sendOnBtn.setOnClickListener { - if (disposable == null) { - disposable = sampleBleDevice?.sendDataOn() - ?.observeOn(AndroidSchedulers.mainThread()) - ?.subscribe({ - dataText.setText(it.contentToString()) - }, { - Log.e(TAG, "", it) - }) - } - } - sendOffBtn.setOnClickListener { - disposable?.let { - it.dispose() - disposable = null - } - } + dataText.setText("name:${sampleBleDevice?.name}\naddress:${sampleBleDevice?.macAddress}") } companion object { diff --git a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceDelegate.kt b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceDelegate.kt index d640ae5..b16ac30 100644 --- a/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceDelegate.kt +++ b/app/src/main/java/com/algorigo/algorigoblelibrary/SampleBleDeviceDelegate.kt @@ -1,6 +1,7 @@ package com.algorigo.algorigoblelibrary import android.bluetooth.BluetoothDevice +import android.util.Log import com.algorigo.algorigoble.BleDevice import com.algorigo.algorigoble.BleManager import com.algorigo.algorigoble.BleScanFilter @@ -9,8 +10,7 @@ import com.algorigo.algorigoble.BleScanSettings class SampleBleDeviceDelegate: BleManager.BleDeviceDelegate() { override fun createBleDevice(bluetoothDevice: BluetoothDevice): BleDevice? { return when (bluetoothDevice.name) { - SampleBleDevice.BLE_NAME -> SampleBleDevice() - else -> null + else -> SampleBleDevice() } } @@ -19,8 +19,6 @@ class SampleBleDeviceDelegate: BleManager.BleDeviceDelegate() { } override fun getBleScanFilters(): Array { - return arrayOf( - BleScanFilter.Builder().setDeviceName(SampleBleDevice.BLE_NAME).build() - ) + return arrayOf() } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_sample_ble_device.xml b/app/src/main/res/layout/activity_sample_ble_device.xml index 9c12365..bdb675e 100644 --- a/app/src/main/res/layout/activity_sample_ble_device.xml +++ b/app/src/main/res/layout/activity_sample_ble_device.xml @@ -7,51 +7,6 @@ android:orientation="vertical" tools:context=".SampleBleDeviceActivity"> - - -