android - GoogleApiClient ऑनकनेक्ट किया गया जिसे पहनने योग्य डिवाइस पर कभी नहीं बुलाया गया




google-api-client wear-os (2)

अरे वाह, जवाब शर्मनाक सरल है। मुझे वह हिस्सा याद आ गया जहाँ onStart() आपको mGoogleApiClient.connect() कॉल करने की आवश्यकता है।

मेरे पास एक पहनने योग्य डिवाइस है जिसे मैं GoogleApiClient से कनेक्ट करने का प्रयास कर रहा हूं, लेकिन कॉलबैक को कभी भी कॉल नहीं किया जाता है (onConnected, onConnectionSuspended या onConnectionFailed)। बाकी सब कुछ ठीक चल रहा है, DataLayerListenerService हाथ से संदेश प्राप्त करने में सक्षम है और कनेक्ट होने पर onPeerConnected कहा जा रहा है। मैंने एमुलेटर और सैमसंग गियर लाइव डिवाइस दोनों पर कोशिश की है। यह वह कोड है जो मेरे पास गतिविधि में है जहां मैं GoogleApiClient से कनेक्ट करने का प्रयास कर रहा हूं।

public class WearReaderActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
    public static final String CONTENT_EXTRA = "contentExtra";
    private String LOG_TAG = WearReaderActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reader);
        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(Wearable.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
    }

    private GoogleApiClient mGoogleApiClient;

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("Connected?", String.valueOf(mGoogleApiClient.isConnected()));
        //new Thread(new GetContent()).start();
    }

    @Override
    public void onConnected(Bundle bundle) {
        Log.d("Connected", "Connected");
        new Thread(new GetContent()).start();
    }

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

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        Log.d("Connection suspened", "Connection suspended");
    }
...
}

यकीन नहीं है कि यह मदद करेगा, लेकिन यह पहनने योग्य एप्लिकेशन के लिए मेरा घोषणापत्र है

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="my.packagename">
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.DeviceDefault" >
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

    <activity
        android:name=".WearReaderActivity"
        android:label="Reading" >
        <intent-filter>
           <action android:name="android.intent.action.MAIN" />
           <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version" />

    <service
        android:name=".DataLayerListenerService" >
        <intent-filter>
            <action android:name="com.google.android.gms.wearable.BIND_LISTENER" />
        </intent-filter>
    </service>

</application>

कोई विचार?

संपादित करें: पहनने योग्य प्रकट करने के लिए निम्नलिखित जोड़ा गया है, फिर भी काम नहीं कर रहा है

<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />

आप कनेक्ट को कॉल कर सकते हैं और मैन्युअल रूप से onStart और onStop जीवन चक्र विधियों में डिस्कनेक्ट कर सकते हैं, या आप enableAutoManage सुविधा का उपयोग कर सकते हैं।

mCredentialsApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .enableAutoManage(this, this)
            .addApi(Auth.CREDENTIALS_API)
            .build();




wear-os