記憶力下降的厲害,年前做的demo,年後就忘了差不多了,當然也有一部分原因是因爲這個年假確實有點長,,,,whatever,還是寫個博客記錄一下,忘了也有地方找
結果,還是忘了,,,
貼兩個地址吧
wear應用和手機端通過藍牙互相傳數據方面,有個數據層,手機端數據改變發送到數據層,數據層會隨之改變,並在wear應用打開的時候通知監聽
wear方面的監聽
package com.example.win.aodwear2;
import android.content.SharedPreferences;
import android.util.Log;
import android.widget.Toast;
import com.google.android.gms.wearable.Asset;
import com.google.android.gms.wearable.DataEvent;
import com.google.android.gms.wearable.DataEventBuffer;
import com.google.android.gms.wearable.DataItem;
import com.google.android.gms.wearable.DataMap;
import com.google.android.gms.wearable.DataMapItem;
import com.google.android.gms.wearable.MessageEvent;
import com.google.android.gms.wearable.WearableListenerService;
/**
* Created by win on 2019/12/25.
*/
public class DataLayerListenerService extends WearableListenerService{
private CtrApp app;
@Override
public void onCreate() {
super.onCreate();
app = (CtrApp) getApplication();
}
@Override
public void onMessageReceived(MessageEvent messageEvent) {
super.onMessageReceived(messageEvent);
System.out.println("消息=========");
}
@Override
public void onDataChanged(DataEventBuffer dataEventBuffer) {
System.out.println("收到的數據變化ondatachanged222===");
Log.i("info", "數據發生變化嘍");
for (DataEvent event : dataEventBuffer) {
if (event.getType() == DataEvent.TYPE_CHANGED) {
String typeString = event.getDataItem().getUri().getPath();
DataItem item = event.getDataItem();
DataMap map = DataMapItem.fromDataItem(item).getDataMap();
//item.getUri().getPath().compareTo("/count") == 0
if ("/image".equals(typeString)) {
Log.i("info", "是圖片");
Asset mAsset = map.getAsset("asset");
} else if (typeString.compareTo("/bledata") == 0){
app.dev_name = map.getString("dev_name");
app.bt_key = map.getString("bt_key");
app.isbleconnect=0;
SharedPreferences.Editor editor = getSharedPreferences("login", MODE_PRIVATE).edit();
editor.putString("dev_name", app.dev_name);
editor.putString("bt_key", app.bt_key);
editor.commit();
System.out.println("數據變化類型事件:222"+app.dev_name+"=="+app.bt_key);
Toast.makeText(getApplicationContext(),"車輛更換,正在重新連接藍牙",Toast.LENGTH_LONG).show();
//Log.i("info", "數據變化類型事件:" + getString);
}
} else if (event.getType() == DataEvent.TYPE_DELETED) {
Log.i("info", "數據刪除");
}
}
// for (DataEvent event : dataEventBuffer) {
// if (event.getType() == DataEvent.TYPE_CHANGED) {
// // DataItem changed
// DataItem item = event.getDataItem();
// if (item.getUri().getPath().compareTo("/count") == 0) {
// DataMap dataMap = DataMapItem.fromDataItem(item).getDataMap();
// String date = dataMap.getString("btkey");
// System.out.println("收到的數據==="+date);
// Toast.makeText(this,date,Toast.LENGTH_SHORT).show();
//
// //updateCount(dataMap.getInt(COUNT_KEY));
// }
// } else if (event.getType() == DataEvent.TYPE_DELETED) {
// // DataItem deleted
// }
// }
}
}
手機端同步數據層:
//與手錶通訊部分,暫不開啓
public int iswearopen=0;
public void changeDevName(String dev_name,String bt_key){
if (iswearopen==0){
return;
}
SharedPreferences read = getSharedPreferences("login", MODE_PRIVATE);
String olddev_name = read.getString("dev_name", "");
if(!TextUtils.isEmpty(dev_name)&&!TextUtils.isEmpty(olddev_name)&&!dev_name.equals(olddev_name)){
if (isgooglecon==1) {
PutDataMapRequest mapRequest = PutDataMapRequest.create("/samedata");
DataMap dataMap = mapRequest.getDataMap();
dataMap.putString("dev_name", dev_name);
dataMap.putString("bt_key", bt_key);
mapRequest.setUrgent();
PutDataRequest dataRequest = mapRequest.asPutDataRequest();
dataRequest.setUrgent();
Wearable.DataApi.putDataItem(mGoogleAppiClient, dataRequest).setResultCallback(new ResultCallback<DataApi.DataItemResult>() {
@Override
public void onResult(DataApi.DataItemResult arg0) {
if (!arg0.getStatus().isSuccess()) {
} else {
Log.i("info", "發送成功了");
//Toast.makeText(MainActivity.this, "Notification Success", Toast.LENGTH_LONG).show();
}
}
});
} else {
Log.i("info", "沒連上");
}
}
}