BitmapキャッチャVer1.2をリリースしました
BitmapキャッチャVer1.1にバイブレートの繰り返しが効かないというバグがありました。そのバグフィックスと、1つ機能を追加しましたのでブログに書いておきます。
機能が増えたので全部で5つとなりました。以下に機能を書きます。
- Bitmap画像を受け取って、SmartWatchの画面に表示する。
- Vibrator命令を受け取って、SmartWatchを振動させる。
- SmartWatch画面へのタッチ情報を、Broadcast送信する。
- SmartWatch画面でのスィープ情報を、Broadcast送信する。
- SmartWatchの加速度センサの値を、Broadcast送信する。
最後のセンサの値送信が新しく追加した機能です。
GooglePlayでのダウンロードはこちらから。
新機能についてだけ書いておきます。以前の機能はこちらから。
他アプリから加速度センサの値を取得する方法
Bitmapキャッチャは、加速度センサ値のリクエストBroadcastを待っています。このため、receiver の intent-filterに以下を追加しています。
<!-- Sensor intents --> <action android:name="com.luaridaworks.extras.SENSOR_REQUEST" />
このBroadcast送信を受け取ると、加速度センサの値をBroadcast送信します。
先ずは、下記のようにBroadcastを送信します。
Intent intent = new Intent("com.luaridaworks.extras.SENSOR_REQUEST"); sendBroadcast(intent);
そうすると、Bitmapキャッチャは加速度の値がBroadcast送信します。下記がそのプログラムの抜粋になります。
else if(intent.getAction().equals("com.luaridaworks.extras.SENSOR_REQUEST")){ //センサ情報のBroadcast要求があったので、返します Intent ssintent = new Intent("com.luaridaworks.extras.SENSOR_SEND"); ssintent.putExtra("SENSORX", BitmapCatcher.SensorX); ssintent.putExtra("SENSORY", BitmapCatcher.SensorY); ssintent.putExtra("SENSORZ", BitmapCatcher.SensorZ); context.sendBroadcast(ssintent); }
各軸の拡張データ名が下記です。
- SENSORX :X軸加速度
- SENSORY :Y軸加速度
- SENSORZ :Z軸加速度
他アプリでは、この返信を受信する必要が有ります。受信するには、Manifestのreceiverに、intent-filterを追記します。
<receiver android:name=".TSReceiver"> <intent-filter> <!-- Sensor intents --> <action android:name="com.luaridaworks.extras.SENSOR_SEND" /> </intent-filter> </receiver>
受信するために、BroadcastReceiverを継承したクラスを生成します。下記は1例です。
public class TSReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("com.luaridaworks.extras.SENSOR_SEND")){ try{ Float x = (Float)intent.getSerializableExtra("SENSORX"); Float y = (Float)intent.getSerializableExtra("SENSORY"); Float z = (Float)intent.getSerializableExtra("SENSORZ"); } catch(Exception e){ } } } }
ここまで作りこんで、やっぱり、タッチ情報のBroadcast垂れ流しは、イマイチだなぁと思い始めています。ごめんなさい、仕様を変える可能盛大です。