इस सेक्शन में, Snapshot API का इस्तेमाल करके, सहायता वाले हर कॉन्टेक्स्ट टाइप के लिए मौजूदा स्थिति पाने का तरीका बताया गया है. ज़्यादा जानकारी के लिए, शुरू करना लेख पढ़ें. कॉन्टेक्स्ट के हिसाब से काम करने वाले उन सिग्नल के बारे में जानने के लिए जिन्हें बंद किया जा रहा है, यहां दी गई सूचना को खोलें:
मौजूदा गतिविधि की जानकारी पाना
उपयोगकर्ता की मौजूदा गतिविधि की जानकारी पाने के लिए, getDetectedActivity() को कॉल करें. इससे ActivityRecognitionResult
मिलता है. इसमें उपयोगकर्ता की हाल ही की गतिविधियों की जानकारी होती है.
The getDetectedActivity() तरीके के लिए
com.google.android.gms.permission.ACTIVITY_RECOGNITION अनुमति की ज़रूरत होती है. यह अनुमति AndroidManifest.xml में जोड़ें.
उपयोगकर्ता की मौजूदा गतिविधि की जानकारी पाने के लिए, यह तरीका अपनाएं:
SnapshotClientका इंस्टेंस बनाने के लिए,getSnapshotClient()को कॉल करें.OnSuccessListenerबनाने के लिए,addOnSuccessListenerका इस्तेमाल करें. यहDetectedActivityResponseको सुन सकता है.- यह पक्का करने के लिए कि नतीजा मान्य है,
getStatus()को कॉल करें. ActivityRecognitionResultपाने के लिए,DetectedActivityResponse.getActivityRecognitionResult()को कॉल करें. इसका इस्तेमाल करके, उपयोगकर्ता की मौजूदा गतिविधि के कई पहलुओं की जानकारी पाई जा सकती है. उदाहरण के लिए:- सिर्फ़ सबसे संभावित गतिविधि की जानकारी पाने के लिए,
getMostProbableActivity()को कॉल करें. - संभाव्यता के हिसाब से रैंक की गई, हाल ही की गतिविधियों की सूची पाने के लिए,
getProbableActivities()को कॉल करें. - किसी गतिविधि के टाइप के लिए कॉन्फ़िडेंस वैल्यू पाने के लिए,
getActivityConfidence()को कॉल करें. - यह पता लगाने के लिए कि किसी
IntentमेंActivityRecognitionResultहै या नहीं,hasResult()को कॉल करें.
- सिर्फ़ सबसे संभावित गतिविधि की जानकारी पाने के लिए,
यहां दिए गए कोड के उदाहरण में, सबसे संभावित गतिविधि की जानकारी पाने और नतीजे को कंसोल में लॉग करने के लिए, 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 को पता लगाने के लिए सेट किया जाता है.
इसके बाद, 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` मिलता है.
इसके बाद, मौजूदा जगह की जानकारी वाला Location
पाने के लिए, LocationResponse.getLocation()
को कॉल किया जा सकता है.
The 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();
}
})