इस उदाहरण में, Fitness API क्लाइंट बनाने का तरीका बताया गया है.
नीचे बताए गए तरीके से एपीआई क्लाइंट बनाएं:
FitnessOptions
इंस्टेंस बनाएं, जिसमें यह बताया गया हो कि आपके ऐप्लिकेशन को डेटा टाइप और ऐक्सेस टाइप (पढ़ने और/या लिखने) की ज़रूरत है या नहीं:val fitnessOptions = FitnessOptions.builder() .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ) .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ) .build()
एपीआई के साथ इस्तेमाल करने के लिए,
Account
ऑब्जेक्ट का इंस्टेंस पाएं:val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
देखें कि उपयोगकर्ता ने पहले ज़रूरी डेटा ऐक्सेस दिया है या नहीं. अगर अनुमति नहीं दी है, तो अनुमति देने की प्रक्रिया शुरू करें:
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) { GoogleSignIn.requestPermissions( this, // your activity GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1 account, fitnessOptions) } else { accessGoogleFit() }
अगर ऑथराइज़ेशन फ़्लो की ज़रूरत है, तो उपयोगकर्ता का जवाब मैनेज करें:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (resultCode) { Activity.RESULT_OK -> when (requestCode) { GOOGLE_FIT_PERMISSIONS_REQUEST_CODE -> accessGoogleFit() else -> { // Result wasn't from Google Fit } } else -> { // Permission not granted } } }
जब उपयोगकर्ता को अनुरोध किए गए डेटा का ऐक्सेस मिल जाए, तब अपने ऐप्लिकेशन के मकसद और ज़रूरतों के मुताबिक, एक फ़िटनेस क्लाइंट बनाएं. उदाहरण के लिए, फ़िटनेस का पुराना डेटा पढ़ने और/या उसमें बदलाव करने के लिए
HistoryClient
:private fun accessGoogleFit() { val end = LocalDateTime.now() val start = end.minusYears(1) val endSeconds = end.atZone(ZoneId.systemDefault()).toEpochSecond() val startSeconds = start.atZone(ZoneId.systemDefault()).toEpochSecond() val readRequest = DataReadRequest.Builder() .aggregate(DataType.AGGREGATE_STEP_COUNT_DELTA) .setTimeRange(startSeconds, endSeconds, TimeUnit.SECONDS) .bucketByTime(1, TimeUnit.DAYS) .build() val account = GoogleSignIn.getAccountForExtension(this, fitnessOptions) Fitness.getHistoryClient(this, account) .readData(readRequest) .addOnSuccessListener({ response -> // Use response data here Log.i(TAG, "OnSuccess()") }) .addOnFailureListener({ e -> Log.d(TAG, "OnFailure()", e) }) }