LoginSignup
6
6

More than 5 years have passed since last update.

SH-02F(Android4.2.2)でBLEモジュールKonashiを使う

Posted at

みんなKitKat持ってて、もはや需要がないであろう記事ですが備忘録として残します。
今のスマホの支払い、あと1年2か月くらい残ってるし…

KonashiってAndroidで使えるの?

最近はほとんどコミットがなく、開発は活発とは言えませんがSDKがあります。
YUKAI/konashi-android-sdk

BLEってAndroid4.3からじゃないっけ?

4.3未満でもメーカー側で対応しているケースがあり、SHARPの端末もAndroid 4.3からバックポートしています。
Android 4.2搭載端末での Bluetooth Low Energy API 利用方法

プロジェクトの作成

API Level 18をターゲットにしてプロジェクトを作成します。

# idを調べる
$ android list target | grep android-18
id: 13 or "android-18"
# プロジェクトを作成。
# アクティビティの名前はMainActivityにしておくと
# サンプルと同じなので楽。
# パッケージ名はテキトーに
$ android create project -n KonashiLED -t 13 -p KonashiLED -k com.nocd5.konashi.led -a MainActivity
$ cd KonashiLED
# konashi-android-sdkをライブラリプロジェクトに追加
$ android update project -l ../konashi-android-sdk/Konashi -p .

konashi-android-sdk/samples/KonashiSampleBasic内の以下のファイルをコピー

  • libs/
  • res/
  • ic_launcher-web.png

ソースコードも内容は丸ごとコピーですが、パッケージ名はプロジェクト作成時のものに合わせ修正します。

Android 4.2搭載端末での Bluetooth Low Energy API 利用方法を参考にAndroidManifest.xmlを編集します。

diff -r be8789f6c9e1 AndroidManifest.xml
--- a/AndroidManifest.xml   Sat Oct 11 01:41:32 2014 +0900
+++ b/AndroidManifest.xml   Sat Oct 11 01:45:14 2014 +0900
@@ -12,4 +12,10 @@
             </intent-filter>
         </activity>
     </application>
+    <uses-sdk
+        android:minSdkVersion="17"
+        android:targetSdkVersion="18" />
+    <uses-feature android:name="jp.gr.java_conf.ble_profile.api.gatt"/>
+    <uses-permission android:name="android.permission.BLUETOOTH"/>
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
 </manifest>

Konashi Android SDKの修正

そのままだとBLEをサポートしていると見なされないので以下のように修正し
jp.gr.java_conf.ble_profile.api.gattも許容するようにします。
ちなみにPackageManager.FEATURE_BLUETOOTH_LEの定義はandroid.hardware.bluetooth_leです。

diff --git a/Konashi/src/com/uxxu/konashi/lib/KonashiBaseManager.java b/Konashi/src/com/uxxu/konashi/lib/KonashiBaseManager.java
index 49657b2..e24118e 100644
--- a/Konashi/src/com/uxxu/konashi/lib/KonashiBaseManager.java
+++ b/Konashi/src/com/uxxu/konashi/lib/KonashiBaseManager.java
@@ -385,7 +385,8 @@ public class KonashiBaseManager implements BluetoothAdapter.LeScanCallback, OnBl
     /////////////////////////////////////////////////////////////

     private boolean isSupportBle(Context context){
-        return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);
+        return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE) ||
+               context.getPackageManager().hasSystemFeature("jp.gr.java_conf.ble_profile.api.gatt");
     }

     protected boolean isEnableAccessKonashi(){

デプロイ

あとはビルドしてインストールするだけです

$ ant debug
$ adb -d install -r bin/KonashiLED-debug.apk

うごいたー
DSC_0004.jpg

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6