Search code examples
raspberry-pi3google-api-clientandroid-things

Cannot connect to google API client in Android Things


Here is my code

public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener {

    private GoogleApiClient mGoogleApiClient;
    private String TAG = "app comm";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int code = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
        if (code == ConnectionResult.SUCCESS) {
            Log.d(TAG, "success ");
            buildGoogleApiClient();
        } else {
            Log.d(TAG, "fail ");
        }

    }

    private void buildGoogleApiClient() {
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Nearby.CONNECTIONS_API).addConnectionCallbacks(this).addOnConnectionFailedListener(this).build();
    }

    @Override
    public void onConnected(@Nullable Bundle bundle) {
        Log.d(TAG,"connected");
    }

    @Override
    public void onConnectionSuspended(int i) {
        Log.d(TAG,"suspended");
    }

    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
        Log.d(TAG,"failed");
    }

}

I am new to this I run this program in raspberry pi 3 I have checked and internet is working. isGoogleServicesAvailable is returning true. but none of the override methods called. I don't know what I am missing.

Here is my log

Connected to process 8191 on device google-iot_rpi3-192.168.1.2:5555
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/zygote: Late-enabling -Xcheck:jni
W/zygote: Using default instruction set features for ARM CPU variant (generic) using conservative defaults
I/InstantRun: starting instant run server: is main process
V/first log: first raspberry log message
D/app comm: success 
D/vndksupport: Loading /vendor/lib/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace.

Solution

  • Looking at your code snippet, you are not calling the connect method after building it, which is what actually starts the connection and gives a callback.