nearby messages api

16

Upload: akkuma

Post on 12-Apr-2017

270 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: Nearby Messages API
Page 2: Nearby Messages API
Page 3: Nearby Messages API
Page 4: Nearby Messages API

keytool -list -v -keystore ~/.android/debug.keystore

Page 5: Nearby Messages API

• compile ‘com.google.android.gms:play-services-nearby:8.3.0'

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="info.akkuma.nearbysample" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value=“put-your-key“ /> </application> </manifest> キーをここに書く

Page 6: Nearby Messages API

@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Nearby.MESSAGES_API) .addConnectionCallbacks(mConnectionCallbacks) .addOnConnectionFailedListener(mFailedListener) .build(); }

Page 7: Nearby Messages API
Page 8: Nearby Messages API

Nearby.Messages.getPermissionStatus(mGoogleApiClient) .setResultCallback(new ResultCallback<Status>() { @Override public void onResult(Status status) { if (status.isSuccess()) { Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, mStrategy); } else { try { status.startResolutionForResult(MainActivity.this, REQUEST_RESOLVE_ERROR); } catch (IntentSender.SendIntentException e) { Log.e(TAG, e.toString()); } } }});

許可されていない場合

既に許可されている場合

Page 9: Nearby Messages API

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == REQUEST_RESOLVE_ERROR) { if (resultCode == RESULT_OK) { Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, mStrategy); } else { Log.d(TAG, "Failed to resolve error with code " + resultCode); } }}

許可された場合

Page 10: Nearby Messages API

Message message = new Message(content); Nearby.Messages.publish(mGoogleApiClient, message, mStrategy) .setResultCallback(new ResultCallback<Status>(){ @Override public void onResult(Status status) { }});

送信するbyte配列(1MB以下・3KB以下推奨)

送信成功時のコールバックStrategy(後述)

Page 11: Nearby Messages API

mMessageListener = new MessageListener() { @Override public void onFound(Message message) {

}};

Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, mStrategy);

受信時のコールバックStrategy(後述)

Page 12: Nearby Messages API

private Strategy mStrategy = new Strategy.Builder() .setDiscoveryMode(Strategy.DISCOVERY_MODE_DEFAULT) .setDistanceType(Strategy.DISTANCE_TYPE_DEFAULT) .setTtlSeconds(Strategy.TTL_SECONDS_DEFAULT) .build();

Page 13: Nearby Messages API

private Strategy mStrategy = new Strategy.Builder() .setDiscoveryMode(Strategy.DISCOVERY_MODE_DEFAULT) .setDistanceType(Strategy.DISTANCE_TYPE_DEFAULT) .setTtlSeconds(Strategy.TTL_SECONDS_DEFAULT) .build();

Page 14: Nearby Messages API

private Strategy mStrategy = new Strategy.Builder() .setDiscoveryMode(Strategy.DISCOVERY_MODE_DEFAULT) .setDistanceType(Strategy.DISTANCE_TYPE_DEFAULT) .setTtlSeconds(Strategy.TTL_SECONDS_DEFAULT) .build();

Page 15: Nearby Messages API

private Strategy mStrategy = new Strategy.Builder() .setDiscoveryMode(Strategy.DISCOVERY_MODE_DEFAULT) .setDistanceType(Strategy.DISTANCE_TYPE_DEFAULT) .setTtlSeconds(Strategy.TTL_SECONDS_DEFAULT) .build();