Senden von Daten an ein android wear-Gerät
Ich versuche zu senden, einen String-array vom Handy auf meinen Verschleiß,
Habe ich einen service auf meinem Handy, dass senden soll, die Daten mit diesem code :
public class SendDataService extends Service {
private static final String TAG = "SendDataService";
@Override
public void onCreate(){
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle connectionHint) {
Log.d(TAG, "onConnected: " + connectionHint);
//Now you can use the data layer API
}
@Override
public void onConnectionSuspended(int cause) {
Log.d(TAG, "onConnectionSuspended: " + cause);
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.d(TAG, "onConnectionFailed: " + result);
}
})
.addApi(Wearable.API)
.build();
mGoogleApiClient.connect();
String[] eventStrings = Events.eventsString(Events.readCalendarEvent(this));
PutDataMapRequest dataMap = PutDataMapRequest.create("/events");
dataMap.getDataMap().putStringArray("events", eventStrings);
PutDataRequest request = dataMap.asPutDataRequest();
PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi
.putDataItem(mGoogleApiClient, request);
mGoogleApiClient.disconnect();
}
und aus die Uhr, die ich versuchen, es in meine Haupt-Tätigkeit mit diesem code :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_agenda_wear);
this.context = this;
GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle connectionHint) {
Log.d(TAG, "onConnected: " + connectionHint);
//Now you can use the data layer API
}
@Override
public void onConnectionSuspended(int cause) {
Log.d(TAG, "onConnectionSuspended: " + cause);
}
})
.addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(ConnectionResult result) {
Log.d(TAG, "onConnectionFailed: " + result);
}
})
.addApi(Wearable.API)
.build();
mGoogleApiClient.connect();
PendingResult<DataItemBuffer> results = Wearable.DataApi.getDataItems(mGoogleApiClient);
results.setResultCallback(new ResultCallback<DataItemBuffer>() {
@Override
public void onResult(DataItemBuffer dataItems) {
if (dataItems.getCount() != 0) {
DataMapItem dataMapItem = DataMapItem.fromDataItem(dataItems.get(0));
//This should read the correct value.
AgendaWear.this.eventString = dataMapItem.getDataMap().getStringArray("events");
}
dataItems.release();
}
});
mGoogleApiClient.disconnect();
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
@Override
public void onLayoutInflated(WatchViewStub stub) {
if (AgendaWear.this.eventString == null){
Toast.makeText(AgendaWear.this, "No data",Toast.LENGTH_LONG).show();
AgendaWear.this.eventString = new String[0];
}
AgendaWear.listItems = eventArray(AgendaWear.this.eventString);
mListView = (WearableListView) stub.findViewById(R.id.listView);
mListView.setAdapter(new MyAdapter(AgendaWear.this));
mListView.setClickListener(AgendaWear.this);
}
});
}
Aber leider bekomme ich immer "keine Daten" toast und ich bin ein bisschen stecken hier, ich habe die Zeile<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
sowohl die Verschleiß-und mobile Teil meiner app, aber ich kann nicht scheinen, um beliebige Daten.
Vielen Dank im Voraus für Eure Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht kann ich helfen.
Dieser code bei mir funktioniert, sendet ein array von strings vom Gerät empfangen werden, die in der tragbar:
Geräte-code:
Tragbar-code: