- MaBeeeAndroidSDKをつかって、MaBeeeデバイスのプロパティを更新するサンプルプロジェクトです。
AndroidStudioでbuild.gradle(Module: app)に以下を追加します。
repositories {
maven { url 'http://raw.github.com/novars-jp/MaBeeeAndroidSDK/master/repository/' }
}
dependencies {
compile 'jp.novars.mabeee.sdk:sdk:1.3'
}
-
Scanボタン、Updateボタン、TextViewを持つレイアウトを作成します。
- MainActivity.javaのonCreateに以下のソース追加します。
App.getInstance().initializeApp(getApplicationContext());
- AppクラスはこのSDKの中心となるクラスで、Android端末のBluetoothや接続済みのMaBeeeデバイスを管理します。
- App.getInstance()でAppクラスのSingletonインスタンスを取得します。
- AppクラスのinitializeApp(Context context)関数で、Appクラス、ライブラリの初期化を行ないます。
- これは一般的にはApplicationクラスで最初に呼び出すか、複数回呼び出しても問題ないので、最初のActivityのonCreateなどで呼び出してください。
- ScanボタンにOnClickListenerを設定し、ScanAcitivtyを呼び出す処理を追加します。
Button scanButton = (Button)findViewById(R.id.scanButton);
scanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, ScanActivity.class);
startActivity(intent);
}
});
- ScanActivityはMaBeeeデバイスのスキャンと接続を簡単に実装できるUIを提供します。
- UpdateボタンにOnClickListenerを実装し、MaBeeeデバイスのプロパティをアップデートする処理を追加します。
Button updateButton = (Button)findViewById(R.id.updateButton);
updateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Device[] devices = App.getInstance().getDevices();
for (Device device : devices) {
device.updateRssi();
device.updateBatteryVoltage();
}
}
});
- App.getInstance().getDevices()で接続済みのMaBeeeデバイスの配列が取得できます。
- DeviceクラスのupdateRssi()でRSSI(電波受信強度)をアップデートするように指示します。
- DeviceクラスのupdateBatteryVoltate()でMaBeeeデバイスにセットされている電池の電圧をアップデートするように指示します。
- DeviceクラスのupdateRssi(), updateBatteryVoltage()でプロパティの値がアップデートされると、Broadcastで通知されます。
- Broadcastを受け取って、画面にデバイスのプロパティを表示するレシーバーを追加します。
- onResume, onPauseでそれらをAppクラスのインスタンスに登録します。
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (App.MABEEE_RSSI_DID_UPDATE_NOTIFICATION.equals(intent.getAction())) {
Long identifier = intent.getLongExtra("Identifier", 0);
Device device = App.getInstance().getDevice(identifier);
mText += "RSSI " + device.getRssi() + "\n";
mTextView.setText(mText);
return;
}
if (App.MABEEE_BATTERY_VOLTAGE_DID_UPDATE_NOTIFICATION.equals(intent.getAction())) {
Long identifier = intent.getLongExtra("Identifier", 0);
Device device = App.getInstance().getDevice(identifier);
mText += "Battery Voltage " + device.getBatteryVoltage() + "\n";
mTextView.setText(mText);
return;
}
}
};
@Override
protected void onResume() {
super.onResume();
App.getInstance().registerBroadcastReceiver(mReceiver);
}
@Override
protected void onPause() {
super.onPause();
App.getInstance().unregisterBroadcastReceiver(mReceiver);
}
- App.getInstance().registerBroadcastReceiver()でレシーバーを登録します。
- App.getInstance().unregisterBroadcastReceiver()でレシーバーを登録を解除します。
- App.MABEEE_RSSI_DID_UPDATE_NOTIFICATIONがRSSIがアップデートされたときのActionになります。
- App.MABEEE_BATTERY_VOLTAGE_DID_UPDATE_NOTIFICATIONが電池電圧がアップデートしたときのActionになります。
- どちらもintent.getLongExtra("Identifier", 0)で、MaBeeeデバイスのIDを取得しています。
- App.getInstance().getDevice(identifier)でIDに紐づくMaBeeeデバイスを取得できます。
- ビルドして実行します。
- AndroidのBluetoothがONになっているかを確認してください。
- MaBeeeをおもちゃなどにセットして、おもちゃなどの電源をONにしてください。
- スキャンボタンを押すと、ScanActivityが表示されます。
- セルには、MaBeeeの名前、RSSI、接続しているかどうかのアイコンが表示されます。
- セルをタップすると接続します。
- 接続すると赤いアイコンになります。
- Updateボタンを押すと、画面に更新された値が表示されます。