ripern / talkclient

Helper for build Android Wear apps that communicate with devices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TalkClient

A simple helper for playing with communication between Android Wear and connected devices.

Library can be fetched using jitpack.io in the following way:

repositories {
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    compile 'com.github.ripern:talkclient:0.1'
}

Usage

####In your activity, create a TalkClient and connect it:

public class Sample extends Activity {
    private TalkClient mTalkClient;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sample);
        mTalkClient = new TalkClient(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mTalkClient.connectClient();
    }

    @Override
    protected void onDestroy() {
        mTalkClient.disconnectClient();
        super.onDestroy();
    }
}

####Send a message:

    private void sendMessage() {
        DataMap dataMap = new DataMap();
        dataMap.putString("data", "Hello World");
        mTalkClient.setTalkMessageAdapter(new TalkMessageAdapter(){
            @Override
            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                Log.e(TAG, "Message sent");
            }
        });
        mTalkClient.sendMessage("/my-path", dataMap);
    }

####Recieve a message in active app:

    @Override
    protected void doStuff() {
        mTalkClient.setTalkMessageAdapter(new TalkMessageAdapter() {
        @Override
        public void onMessageReceived(MessageEvent messageEvent) {
            final DataMap dataMap = DataMap.fromByteArray(messageEvent.getData());
            //Do stuff
        }
      });
    }

####Recieve data on inactive (or active app):

public class ListenerServiceMobile extends WearableListenerService {

    private TalkClient mTalkClient;

    @Override
    public void onCreate() {
        super.onCreate();
        mTalkClient = new TalkClient(getApplicationContext());
        mTalkClient.connectClient();
    }

    @Override
    public void onMessageReceived(MessageEvent messageEvent) {
        final DataMap dataMap = DataMap.fromByteArray(messageEvent.getData());
        //Do things
    }
    
    @Override
    public void onDestroy() {
        mTalkClient.disconnectClient();
        super.onDestroy();
    }
}

With the serives, don't forget to add to manifest:

    <application android:allowBackup="true"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme">
...
        <service android:name=".ListenerServiceMobile">
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
            </intent-filter>
        </service>
...
    </application>

####Sync Data between app and watch:

        mTalkClient.syncDataArray("/my-path-to-data", dataMaps);

####Retrive synched data:

        mTalkClient.setTalkDataAdapter(new TalkDataAdapter() {
            @Override
            public void onRecieveResult(DataMap dataMap) {
                List<DataMap> dataMaps = dataMap.getDataMapArray(TalkClient.DATA_ARRAY);
                //Do Stuff
            }
        });
        mTalkClient.getDataItems("/my-path-to-data");

####Sync bitmap asset:

        mTalkClient.syncBitmap("/my-bitmap-path", "asset-name", photo);

####Retrive synched data:

        mTalkClient.setTalkDataAdapter(new TalkDataAdapter() {
            @Override
            public void onRecieveBitmapResult(String assetName, Bitmap bitmap) {
                //Do things
            }
        });

        mTalkClient.getBitmap(MainActivityWear.this, "/my-bitmap-path", "asset-name");

About

Helper for build Android Wear apps that communicate with devices


Languages

Language:Java 100.0%