मैं अपने ऐप को Google फिट से कनेक्ट करने का प्रयास कर रहा हूं। मैं एक इरादा सेवा का उपयोग कर रहा हूं जिसे निम्नलिखित चीजों को करने की आवश्यकता है। जब मुझे चरणों के बारे में जानकारी मिलती है तो शुरू हो जाता है। इस बिंदु पर मैं निम्नलिखित कोड को फोन करके GoogleApiClient बनाने के लिए कोशिश कर रहा हूँ:एंड्रॉइड ऐप में पृष्ठभूमि में GoogleFit को संभालें
mClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.HISTORY_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addScope(new Scope(Scopes.FITNESS_LOCATION_READ_WRITE))
.addConnectionCallbacks(
new GoogleApiClient.ConnectionCallbacks() {
@Override
public void onConnected(Bundle bundle) {
log.info("FITNESS_API: Connected!!!");
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
insertOrUpdateDataPoints();
}
});
thread.start();
}
@Override
public void onConnectionSuspended(int i) {
// If your connection to the sensor gets lost at some point,
// you'll be able to determine the reason and react to it here.
if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_NETWORK_LOST) {
log.info("FITNESS_API: Connection lost. Cause: Network Lost.");
} else if (i == GoogleApiClient.ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) {
log.info("FITNESS_API: Connection lost. Reason: Service Disconnected");
}
}
}
).build();
mClient.connect();
एक डेटासेट बनाने और डाटापॉइंट elemnets के रूप में दिए गए चरणों का विवरण जोड़ने के बाद, मैं Google फिट से जानकारी सिंक और साथ GoogleApiClient बंद:
com.google.android.gms.common.api.Status insertStatus =
Fitness.HistoryApi.insertData(mClient, dataSet).await(1, TimeUnit.MINUTES);
// Before querying the data, check to see if the insertion succeeded.
if (!insertStatus.isSuccess()) {
log.info("FITNESS_API: There was a problem inserting the dataset. Status = " + insertStatus.getStatusCode());
}
mClient.disconnect();
mClient = null;
समस्या अपने दम पर GoogleApiClient (enableAutoManage के बिना) का प्रबंधन करने की कोशिश कर रहा द्वारा, मैं ऐप Google फिट करने के लिए डेटा पोस्ट करने के लिए अनुमति देने का संकेत नहीं मिलता है। अगर मैं GoogleApiClient बनाते समय enableAutoManage का उपयोग करता हूं तो यह व्यवहार बदलता है। हालांकि, क्लाइंट के लिएऑटोमैनेज को सक्षम करने के लिए, मुझे enableAutoManage द्वारा आवश्यक पैरामीटर के कारण एक गतिविधि फ़्रेगमेंट होना आवश्यक है। मुझे IntentyService में एक गतिविधिफ्रैगमेंट तक पहुंच नहीं है और मैं क्लाइंट के प्रबंधन को रखना चाहता हूं और सम्मिलित कार्रवाई को एक अलग सेवा में रखना चाहता हूं जो पृष्ठभूमि में चल सकता है।
साथ ही जब मैं enableAutoManage का उपयोग नहीं करता हूं, भले ही मैंने GoogleApiClient के लिए कनेक्ट कॉलबैक पंजीकृत किया हो, कुछ भी नहीं होता है।
मैं कैसे सुनिश्चित कर सकता हूं कि मेरा एप्लिकेशन उपयोगकर्ता को Google फिट पर पोस्ट करने की अनुमति देने के लिए प्रेरित करता है? मुझे ऐसा होने की ज़रूरत है यदि उपयोगकर्ता को ऐप खोलने पर ऐप को Google फिट में पोस्ट करने की अनुमति नहीं है। कोई विचार? धन्यवाद।