এই বিভাগটি দেখায় যে কীভাবে Snapshot API ব্যবহার করে প্রতিটি সমর্থিত প্রসঙ্গ প্রকারের বর্তমান অবস্থা জানতে হবে। আরও তথ্যের জন্য, শুরু করুন দেখুন। অবচিত প্রসঙ্গগত সংকেত সম্পর্কে বিস্তারিত জানার জন্য, নিম্নলিখিত প্রসারণযোগ্য বিজ্ঞপ্তিটি খুলুন:
বর্তমান কার্যকলাপ পান
ব্যবহারকারীর বর্তমান কার্যকলাপ জানতে, getDetectedActivity() কল করুন, যা একটি ActivityRecognitionResult প্রদান করে যাতে ব্যবহারকারীর সাম্প্রতিক কার্যকলাপ সম্পর্কে তথ্য থাকে।
getDetectedActivity() পদ্ধতির জন্য com.google.android.gms.permission.ACTIVITY_RECOGNITION অনুমতি প্রয়োজন। এই অনুমতিটি AndroidManifest.xml এ যোগ করুন।
ব্যবহারকারীর বর্তমান কার্যকলাপ পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
SnapshotClientএর একটি ইনস্ট্যান্স তৈরি করতেgetSnapshotClient()এ কল করুন। -
addOnSuccessListenerব্যবহার করে একটিOnSuccessListenerতৈরি করুন যা একটিDetectedActivityResponseশুনতে পারে। - ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে
getStatus()এ কল করুন। ActivityRecognitionResultফেরত দিতেDetectedActivityResponse.getActivityRecognitionResult()কল করুন। ব্যবহারকারীর বর্তমান কার্যকলাপের অনেক দিক পেতে আপনি এটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ:- শুধুমাত্র সবচেয়ে সম্ভাব্য কার্যকলাপ পেতে
getMostProbableActivity()এ কল করুন। - সম্ভাব্যতা অনুসারে সাম্প্রতিক কার্যকলাপের তালিকা পেতে
getProbableActivities()এ কল করুন। - একটি প্রদত্ত কার্যকলাপের ধরণের জন্য আত্মবিশ্বাসের মান ফেরত দিতে
getActivityConfidence()কল করুন। - একটি
IntentActivityRecognitionResultআছে কিনা তা সনাক্ত করতে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 সক্রিয় করতে হবে। আরও তথ্যের জন্য, Signup and API Keys এবং Get started দেখুন।
কাছাকাছি বীকন সম্পর্কে তথ্য পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
ব্যবহারকারী প্রয়োজনীয় অনুমতি দিয়েছেন কিনা তা পরীক্ষা করুন। নিম্নলিখিত উদাহরণটি
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()কল করুন।addOnSuccessListenerব্যবহার করে একটিOnSuccessListenerতৈরি করুন যা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() কল করুন, যা OnSuccessListener সনাক্ত করার জন্য সেট করে একটি HeadphoneStateResponse সনাক্তকরণ অবস্থা তৈরি করে। তারপর আপনি HeadphoneState পেতে getHeadphoneState() কল করতে পারেন।
বর্তমান হেডফোন অবস্থা পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
getSnapshotClient.getHeadphoneState()এ কল করুন। -
addOnSuccessListenerব্যবহার করে একটিOnSuccessListenerতৈরি করুন যা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() এ কল করে ব্যবহারকারীর বর্তমান অবস্থান (latitude-longitude) পেতে পারেন, যা একটি 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()এ কল করুন।addOnSuccessListenerব্যবহার করে একটিOnSuccessListenerতৈরি করুন যাLocationResponseশুনতে পারে।ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে
getStatus()এ কল করুন।বর্তমান
Locationফেরত দিতেLocationResponse.getLocation()এ কল করুন।
নিচের উদাহরণটি বর্তমান অবস্থান কীভাবে পেতে হয় তা দেখায়:
Awareness.getSnapshotClient(this).getLocation()
.addOnSuccessListener(new OnSuccessListener<LocationResponse>() {
@Override
public void onSuccess(LocationResponse locationResponse) {
Location loc = locationResponse.getLocationResult();
}
})