Skip to content

Commit 7a2f1a0

Browse files
author
Paul Ruiz
committed
Added Wear Messaging API demo
1 parent f7254f8 commit 7a2f1a0

File tree

5 files changed

+53
-29
lines changed

5 files changed

+53
-29
lines changed

WearMessageApi/mobile/src/main/java/com/ptrprograms/wearmessageapi/MainActivity.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,24 @@
33
import android.app.Activity;
44
import android.os.Bundle;
55
import android.text.TextUtils;
6-
import android.util.Log;
7-
import android.view.Menu;
8-
import android.view.MenuItem;
96
import android.view.View;
107
import android.widget.ArrayAdapter;
118
import android.widget.Button;
129
import android.widget.EditText;
1310
import android.widget.ListView;
1411

1512
import com.google.android.gms.common.api.GoogleApiClient;
16-
import com.google.android.gms.common.api.PendingResult;
1713
import com.google.android.gms.wearable.MessageApi;
1814
import com.google.android.gms.wearable.Node;
1915
import com.google.android.gms.wearable.NodeApi;
2016
import com.google.android.gms.wearable.Wearable;
2117

22-
import java.util.List;
23-
import java.util.concurrent.TimeUnit;
24-
2518

2619
public class MainActivity extends Activity {
2720

21+
private static final String START_ACTIVITY = "/start_activity";
22+
private static final String WEAR_MESSAGE_PATH = "/message";
23+
2824
private GoogleApiClient mApiClient;
2925

3026
private ArrayAdapter<String> mAdapter;
@@ -40,6 +36,7 @@ protected void onCreate(Bundle savedInstanceState) {
4036

4137
init();
4238
initGoogleApiClient();
39+
sendMessage(START_ACTIVITY, "");
4340
}
4441

4542
private void initGoogleApiClient() {
@@ -68,30 +65,24 @@ private void init() {
6865
@Override
6966
public void onClick(View view) {
7067
String text = mEditText.getText().toString();
71-
if( !TextUtils.isEmpty( text ) ) {
72-
mAdapter.add( text );
68+
if (!TextUtils.isEmpty(text)) {
69+
mAdapter.add(text);
7370
mAdapter.notifyDataSetChanged();
7471

75-
sendMessage( text );
72+
sendMessage(WEAR_MESSAGE_PATH, text);
7673
}
7774
}
7875
});
7976
}
8077

81-
private void sendMessage( final String text ) {
78+
private void sendMessage( final String path, final String text ) {
8279
new Thread( new Runnable() {
8380
@Override
8481
public void run() {
8582
NodeApi.GetConnectedNodesResult nodes = Wearable.NodeApi.getConnectedNodes( mApiClient ).await();
8683
for(Node node : nodes.getNodes()) {
87-
Log.e("MainActivity", "node id: " + node.getId() );
8884
MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(
89-
mApiClient, node.getId(), "/message", text.getBytes() ).await();
90-
if( result.getStatus().isSuccess() ) {
91-
Log.e( "MainActivity", "Message sent successfully" );
92-
}
93-
94-
85+
mApiClient, node.getId(), path, text.getBytes() ).await();
9586
}
9687

9788
runOnUiThread( new Runnable() {

WearMessageApi/wear/src/main/AndroidManifest.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@
2121
<category android:name="android.intent.category.LAUNCHER" />
2222
</intent-filter>
2323
</activity>
24+
25+
<service android:name=".WearMessageListenerService">
26+
<intent-filter>
27+
<action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
28+
</intent-filter>
29+
</service>
30+
2431
</application>
2532

2633
</manifest>

WearMessageApi/wear/src/main/java/com/ptrprograms/wearmessageapi/MainActivity.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22

33
import android.app.Activity;
44
import android.os.Bundle;
5-
import android.support.wearable.view.WatchViewStub;
65
import android.widget.ArrayAdapter;
76
import android.widget.ListView;
8-
import android.widget.TextView;
9-
import android.widget.Toast;
107

118
import com.google.android.gms.common.api.GoogleApiClient;
129
import com.google.android.gms.wearable.MessageApi;
@@ -15,6 +12,7 @@
1512

1613
public class MainActivity extends Activity implements MessageApi.MessageListener, GoogleApiClient.ConnectionCallbacks {
1714

15+
private static final String WEAR_MESSAGE_PATH = "/message";
1816
private GoogleApiClient mApiClient;
1917
private ArrayAdapter<String> mAdapter;
2018

@@ -34,8 +32,8 @@ protected void onCreate(Bundle savedInstanceState) {
3432

3533
private void initGoogleApiClient() {
3634
mApiClient = new GoogleApiClient.Builder( this )
37-
.addApi(Wearable.API)
38-
.addConnectionCallbacks(this)
35+
.addApi( Wearable.API )
36+
.addConnectionCallbacks( this )
3937
.build();
4038

4139
if( mApiClient != null && !( mApiClient.isConnected() || mApiClient.isConnecting() ) )
@@ -55,21 +53,20 @@ protected void onStart() {
5553
}
5654

5755
@Override
58-
public void onMessageReceived( final MessageEvent messageEvent) {
56+
public void onMessageReceived( final MessageEvent messageEvent ) {
5957
runOnUiThread( new Runnable() {
6058
@Override
6159
public void run() {
62-
mAdapter.add( new String( messageEvent.getData() ) );
63-
mAdapter.notifyDataSetChanged();
64-
Toast.makeText( getApplicationContext(), new String( messageEvent.getData() ), Toast.LENGTH_SHORT ).show();
60+
if( messageEvent.getPath().equalsIgnoreCase( WEAR_MESSAGE_PATH ) ) {
61+
mAdapter.add(new String(messageEvent.getData()));
62+
mAdapter.notifyDataSetChanged();
63+
}
6564
}
6665
});
6766
}
6867

6968
@Override
7069
public void onConnected(Bundle bundle) {
71-
Toast.makeText( this, "Wear onConnected", Toast.LENGTH_SHORT ).show();
72-
7370
Wearable.MessageApi.addListener( mApiClient, this );
7471
}
7572

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.ptrprograms.wearmessageapi;
2+
3+
import android.content.Intent;
4+
import android.widget.Toast;
5+
6+
import com.google.android.gms.common.api.GoogleApiClient;
7+
import com.google.android.gms.wearable.MessageEvent;
8+
import com.google.android.gms.wearable.Wearable;
9+
import com.google.android.gms.wearable.WearableListenerService;
10+
11+
/**
12+
* Created by paulruiz on 9/26/14.
13+
*/
14+
public class WearMessageListenerService extends WearableListenerService {
15+
private static final String START_ACTIVITY = "/start_activity";
16+
17+
@Override
18+
public void onMessageReceived(MessageEvent messageEvent) {
19+
if( messageEvent.getPath().equalsIgnoreCase( START_ACTIVITY ) ) {
20+
Intent intent = new Intent( this, MainActivity.class );
21+
intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
22+
startActivity( intent );
23+
} else {
24+
super.onMessageReceived(messageEvent);
25+
}
26+
}
27+
28+
}

WearMessageApi/wear/src/main/res/layout/list_item.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
android:layout_height="wrap_content"
77
android:textAppearance="?android:attr/textAppearanceListItemSmall"
88
android:gravity="center"
9+
android:textColor="@android:color/black"
910
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
1011
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
1112
android:minHeight="?android:attr/listPreferredItemHeightSmall"

0 commit comments

Comments
 (0)