Android搭載ウェアからいくつかの情報をスマートフォンに送信しようとしていますが、まず2つの問題があります。まずはPutDataRequestを使用していますが、 :加速度計のデータをAndroidスマートフォンからスマートフォンに送信
public class MainActivity extends WearableActivity implements SensorEventListener, DataApi.DataListener, MessageApi.MessageListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setAmbientEnabled();
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
apiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)//nos notifica cuando estamos conectados
.addOnConnectionFailedListener(this)// ofrece el resultado del error
.build();
if(!apiClient.isConnected())
apiClient.connect();
x = (TextView) findViewById(R.id.x);
y = (TextView) findViewById(R.id.y);
z = (TextView) findViewById(R.id.z);
}
私は携帯電話にこの方法を値を送信しています、私は、これは間違っている知っているので、どのように私の代わりに3つのメッセージを送信する一つのメッセージで3つの値を送信する必要がありますか?ここ
public class MainActivity extends AppCompatActivity implements DataApi.DataListener, MessageApi.MessageListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
//On create
apiClient = new GoogleApiClient.Builder(this)
.addApi(Wearable.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
if(!apiClient.isConnected())
apiClient.connect();
受信メッセージ:
@Override
public void onDataChanged(DataEventBuffer eventos) {
for (DataEvent event : eventos) {
if (event.getType() == DataEvent.TYPE_CHANGED){
DataItem item =event.getDataItem();
if (item.getUri().getPath().equals(ITEM_0)) {
DataMapItem dataMapItem = DataMapItem.fromDataItem(item);
acel_x = dataMapItem.getDataMap().getFloat(KEY);
runOnUiThread(new Runnable() {
@Override
public void run() {
((TextView) findViewById(R.id.x)).setText(Float.toString(acel_x));
}
});
}
は、だから私は君たちをお願いしたいと思いますどのように私がすべき私はmessesagesをこのように受け付けております携帯電話上の他の方法で
public void onSensorChanged(SensorEvent event) {
accelerometer[0]=event.values[0];
accelerometer[1]=event.values[1];
accelerometer[2]=event.values[2];
x.setText(Float.toString(event.values[0]));
y.setText(Float.toString(event.values[1]));
z.setText(Float.toString(event.values[2]));
//Send X acceleration
putDataMapReq = PutDataMapRequest.create(ITEM_0);
putDataMapReq.getDataMap().putFloat(KEY, accelerometer[0]);
putDataReq = putDataMapReq.asPutDataRequest();
resultado = Wearable.DataApi.putDataItem(apiClient, putDataReq);
Wearable.DataApi.putDataItem(apiClient,putDataReq);
メッセージの送受信を行い、メモリオーバーフローを避けるためにメッセージをどのように送信する必要がありますか?
なぜあなたは時計にデータを格納することはできませんし、後でそれを取得しますか?電話でリアルタイムデータを利用できるようにするには、メッセージapiを使用してデータを送信します。 – NewOne
はい、リアルタイムデータが利用可能です。しかし、私はそれをどのように使うべきですか?値が変更されるたびにメッセージを送信しますか?それはメモリオーバーフローを引き起こすでしょう、それはありませんか? – user5034027