इस सेक्शन में, 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();
}
})