इस सेक्शन में, Snapshot API का इस्तेमाल करके, सहायता पाने वाले हर कॉन्टेक्स्ट टाइप की मौजूदा स्थिति पाने का तरीका बताया गया है. ज़्यादा जानकारी के लिए, शुरू करें लेख पढ़ें. कॉन्टेक्स्ट के हिसाब से काम न करने वाले सिग्नल के बारे में ज़्यादा जानने के लिए, इस सूचना को बड़ा करके देखें:
मौजूदा गतिविधि की जानकारी पाना
उपयोगकर्ता की मौजूदा गतिविधि की जानकारी पाने के लिए, 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<BeaconState.TypeFilter> 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 को डिटेक्ट पर सेट किया जाता है.
इसके बाद, HeadphoneState पाने के लिए, getHeadphoneState() पर कॉल करें.
हेडफ़ोन की मौजूदा स्थिति पाने के लिए, यह तरीका अपनाएं:
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();
}
})