इस सेक्शन में, स्नैपशॉट एपीआई इस्तेमाल करने का तरीका बताया गया है, ताकि आप हर तरह के संदर्भ के लिए मौजूदा स्थिति देख सकें. ज़्यादा जानकारी के लिए, शुरू करें देखें. काम न करने वाले प्रासंगिक सिग्नल के बारे में जानकारी पाने के लिए, नीचे दी गई विस्तार करने लायक सूचना खोलें:
वर्तमान गतिविधि पाएं
उपयोगकर्ता की मौजूदा गतिविधि देखने के लिए, getDetectedActivity()
को कॉल करें. इससे, ActivityRecognitionResult
दिखेगा, जिसमें उपयोगकर्ता की सबसे हाल की गतिविधियों के बारे में जानकारी होगी.
getDetectedActivity()
तरीके के लिए
com.google.android.gms.permission.ACTIVITY_RECOGNITION
अनुमति ज़रूरी है. इस अनुमति को
AndroidManifest.xml
में जोड़ें.
उपयोगकर्ता की मौजूदा गतिविधि देखने के लिए, नीचे दिया गया तरीका अपनाएं:
SnapshotClient
का इंस्टेंस बनाने के लिएgetSnapshotClient()
को कॉल करें.OnSuccessListener
बनाने के लिएaddOnSuccessListener
का इस्तेमाल करें, ताकि वहDetectedActivityResponse
सुन सके.- यह पक्का करने के लिए कि नतीजा मान्य है,
getStatus()
को कॉल करें. ActivityRecognitionResult
लौटाने के लिए,DetectedActivityResponse.getActivityRecognitionResult()
को कॉल करें. इसकी मदद से, उपयोगकर्ता की मौजूदा गतिविधि के कई पहलू देखे जा सकते हैं. उदाहरण के लिए:- सिर्फ़ सबसे अच्छी गतिविधि के लिए,
getMostProbableActivity()
को कॉल करें. - हाल ही में की गई गतिविधियों की सूची देखने के लिए,
getProbableActivities()
को कॉल करें. - किसी खास तरह की गतिविधि के डेटा की कॉन्फ़िडेंस वैल्यू देखने के लिए,
getActivityConfidence()
को कॉल करें. hasResult()
को कॉल करके पता लगाएं किIntent
मेंActivityRecognitionResult
है या नहीं.
- सिर्फ़ सबसे अच्छी गतिविधि के लिए,
कोड के इस उदाहरण में, getMostProbableActivity()
का इस्तेमाल किया गया है, ताकि संभावित गतिविधि के बारे में पता लगाया जा सके और नतीजे को कंसोल में लॉग किया जा सके:
Awareness.getSnapshotClient(this).getDetectedActivity()
.addOnSuccessListener(new OnSuccessListener<DetectedActivityResponse>() {
@Override
public void onSuccess(DetectedActivityResponse dar) {
ActivityRecognitionResult arr = dar.getActivityRecognitionResult();
DetectedActivity probableActivity = arr.getMostProbableActivity();
int confidence = probableActivity.getConfidence();
String activityStr = probableActivity.toString();
mLogFragment.getLogView().println("Activity: " + activityStr
+ ", Confidence: " + confidence + "/100");
}
})
आस-पास के बीकन पाएं
आस-पास के बीकन के बारे में जानकारी पाने के लिए, getBeaconState()
को कॉल करें.
बीकन डेटा में किसी भी तरह का अटैचमेंट, कॉन्टेंट, और नेमस्पेस शामिल होता है.
getBeaconState()
वाले तरीके के लिए android.permission.ACCESS_FINE_LOCATION
अनुमति ज़रूरी है. इस अनुमति को AndroidManifest.xml
में जोड़ें.
इसके अलावा, आपको अपने Google Developers Console के प्रोजेक्ट के लिए Nearby Messages API
चालू करना होगा. ज़्यादा जानकारी के लिए, साइन अप और एपीआई कुंजियां देखें. साथ ही, शुरू करें.
आस-पास के बीकन के बारे में जानकारी पाने के लिए, नीचे दिया गया तरीका अपनाएं:
देखें कि उपयोगकर्ता ने ज़रूरी अनुमतियां दी हैं या नहीं. यहां दिए गए उदाहरण से पता चलता है कि
android.permission.ACCESS_FINE_LOCATION
को अनुमति मिली है या नहीं. अगर नहीं, तो उपयोगकर्ता को सहमति देने के लिए कहा जाता है.if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_LOCATION ); return; }
BeaconState.TypeFilter
तय करें. यह सिर्फ़ उन बीकन के साथ दिखाई देता है जो दिए गए नेमस्पेस और टाइप के साथ रजिस्टर किए गए होते हैं. आप अटैचमेंट कॉन्टेंट पर बाइट-दर-बाइट के हिसाब से भी फ़िल्टर कर सकते हैं. नीचे दिए गए उदाहरण में प्रकार फ़िल्टर बनाने का तरीका बताया गया है:private static final List
BEACON_TYPE_FILTERS = Arrays.asList( BeaconState.TypeFilter.with( "my.beacon.namespace", "my-attachment-type"), BeaconState.TypeFilter.with( "my.other.namespace", "my-attachment-type")); getSnapshotClient.getBeaconState()
को कॉल करें.OnSuccessListener
बनाने के लिएaddOnSuccessListener
का इस्तेमाल करें, ताकि वहBeaconStateResponse
सुन सके.यह पक्का करने के लिए कि नतीजा मान्य है,
getStatus()
को कॉल करें.BeaconStateResponse.getBeaconState()
को कॉल करें, ताकि बीकन की स्थिति दिख सके.BeaconState.BeaconInfo
पाने के लिएBeaconState.getBeaconInfo()
पर कॉल करें.
नीचे दिए गए उदाहरण में, बीकन की जानकारी पाने का तरीका बताया गया है:
Awareness.getSnapshotClient(this).getBeaconState(BEACON_TYPE_FILTERS)
.addOnSuccessListener(new OnSuccessListener<BeaconStateResponse>() {
@Override
public void onSuccess(BeaconStateResponse beaconStateResponse) {
BeaconStateResult beaconStateResult = beaconStateResponse.getBeaconState();
BeaconState.BeaconInfo beaconInfo = beaconStateResponse.getBeaconInfo();
}
})
हेडफ़ोन की स्थिति जानें
यह पता लगाने के लिए कि हेडफ़ोन, डिवाइस में प्लग इन किए गए हैं या नहीं, getHeadphoneState()
को कॉल करें. इससे HeadphoneStateResponse
, स्थिति का पता लगाता है, OnSuccessListener
पता लगाने के लिए सेट किया जाता है.
इसके बाद, आपके पास getHeadphoneState()
HeadphoneState
का ईमेल पाने के लिए, कॉल करने का विकल्प होता है.
अपने हेडफ़ोन की मौजूदा स्थिति जानने के लिए, यह तरीका अपनाएं:
getSnapshotClient.getHeadphoneState()
को कॉल करें.OnSuccessListener
बनाने के लिएaddOnSuccessListener
का इस्तेमाल करें, ताकि वहHeadphoneStateResponse
सुन सके.- यह पक्का करने के लिए कि नतीजा मान्य है,
getStatus()
को कॉल करें. - हो गया, हेडफ़ोन की स्थिति में वापस जाने के लिए
HeadphoneStateResponse.getHeadphoneState()
पर कॉल करें. यह वैल्यू या तोPLUGGED_IN
है याUNPLUGGED
.
नीचे दिए गए कोड के उदाहरण में, getHeadphoneState()
को इस्तेमाल करने का तरीका बताया गया है:
Awareness.getSnapshotClient(this).getHeadphoneState()
.addOnSuccessListener(new OnSuccessListener<HeadphoneStateResponse>() {
@Override
public void onSuccess(HeadphoneStateResponse headphoneStateResponse) {
HeadphoneState headphoneState = headphoneStateResponse.getHeadphoneState();
boolean pluggedIn = headphoneState.getState() == HeadphoneState.PLUGGED_IN;
String stateStr =
"Headphones are " + (pluggedIn ? "plugged in" : "unplugged");
mLogFragment.getLogView().println(stateStr);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Could not get headphone state: " + e);
}
});
स्थान प्राप्त करें
आपको getLocation()
को कॉल करने के साथ उपयोगकर्ता का वर्तमान स्थान (अक्षांश-देशांतर) मिल सकता है, जो LocationResponse
दिखाता है.
इसके बाद, LocationResponse.getLocation()
को कॉल करके Location
से संपर्क करें और आपको अपनी मौजूदा जगह की जानकारी का डेटा दिखेगा.
getLocation()
तरीके के लिए
android.permission.ACCESS_FINE_LOCATION
अनुमति ज़रूरी है. इस अनुमति को
AndroidManifest.xml
में जोड़ें.
मौजूदा जगह की जानकारी पाने के लिए, नीचे दिया गया तरीका अपनाएं:
देखें कि उपयोगकर्ता ने ज़रूरी अनुमतियां दी हैं या नहीं. नीचे दिए गए उदाहरण से पता चलता है कि क्या
android.permission.ACCESS_FINE_LOCATION
को अनुमति दी गई है. अगर नहीं, तो उपयोगकर्ता को सहमति देने के लिए कहा जाता है.if (ContextCompat.checkSelfPermission( MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions( MainActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, MY_PERMISSION_LOCATION ); return; }
getSnapshotClient.getLocation()
को कॉल करें.OnSuccessListener
बनाने के लिएaddOnSuccessListener
का इस्तेमाल करें, ताकि वहLocationResponse
सुन सके.यह पक्का करने के लिए कि नतीजा मान्य है,
getStatus()
को कॉल करें.मौजूदा
Location
दिखाने के लिए,LocationResponse.getLocation()
को कॉल करें.
नीचे दिए गए उदाहरण में मौजूदा जगह को पाने का तरीका बताया गया है:
Awareness.getSnapshotClient(this).getLocation()
.addOnSuccessListener(new OnSuccessListener<LocationResponse>() {
@Override
public void onSuccess(LocationResponse locationResponse) {
Location loc = locationResponse.getLocationResult();
}
})