Home

Awesome

OkWear

Screen

Platform Language License Android Arsenal

This is library to easily use connection between android wear and handheld device.

Usage

Example

Send

static final String PATH = "/path"
static final String MESSAGE = "hello"

OkWear ok = new OkWear(context);

// unused callback listener
ok.sendMessageAll(MESSAGE, PATH);

// use callback listener
ok.sendMessageAll(MESSAGE, PATH, new SendResultListener<MessageApi.SendMessageResult>() {
		@Override
		public void onResult(MessageApi.SendMessageResult result) {
			Log.v(TAG, "Status: " + result.getStatus());
		}
	});

You can easily setup to use Payload class.

OkWear ok = new OkWear(context);

Payload payload =
	new Payload.Builder(PATH)
				.addPayload("key1", 0)
				.addPayload("key2", "hello")
				.build();

// unused callback listener
ok.syncData(payload);

// use callback listener
ok.syncData(payload, new SendResultListener<DataApi.DataItemResult>() {
			@Override
			public void onResult(DataApi.DataItemResult result) {
				Log.v(TAG, "Status: " + result.getStatus());
			}
		});

Receive

OkWear ok = new OkWear(this);
ok.registReceiver(this);

implements callback listener(WearReceiveListener) on your class.

@Override
public void onReceiveMessage(MessageEvent messageEvent) {
	if (messageEvent.getPath().equals(PATH)) {
		final String messagePayload = new String(messageEvent.getData());
		Log.v(TAG, messagePayload);
	}
}

@Override
public void onReceiveDataApi(DataEventBuffer dataEventBuffer) {
	for (DataEvent event : dataEventBuffer) {
		final DataMap dataMap = DataMap.fromByteArray(event.getDataItem().getData());
		final int data1 = dataMap.getInt("key1");
		final String data2 = dataMap.getString("key2");
		Log.v(TAG, "data(int): " + data1);
		Log.v(TAG, "data(string): " + data2);
	}
}

Tips

You can easily create payloads using these util classes.

Support values
ArrayList<Integer>AssetBitmapbooleanbyteint
ArrayList<String>byte[]DataMapdoublefloatfloat[]
ArrayList<DataMap>longlong[]StringString[]
Payload payload =
	new Payload.Builder("path")
				.addPayload("key1", 0)
				.addPayload("key2", "hello")
				.build();
Support values
booleanlongintshort
doublefloatStringchar
byte[] payload = ParseByteArray.fromString("hello");

Setup

Gradle

Add the dependency in your build.gradle

buildscript {
	repositories {
		jcenter()
	}
}

dependencies {
	compile 'com.github.aakira:okwear:1.0.2'
}

Lifecycle

Activty, Fragment or Service You have to call connect() and disconnect() methods when onResume() and onPause() occur in your lifecycle

OkWear mOkWear;

@Override
protected void onResume() {
	super.onResume();
	mOkWear.connect();
}

@Override
protected void onPause() {
	super.onPause();
	mOkWear.disconnect();
}

SDK Version

This library requires over Android 4.3(Jelly Bean) minSdkVersion=18

License

Copyright (C) 2015 A.Akira

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.