স্ন্যাপশট ডেটা পান

এই বিভাগটি দেখায় যে কীভাবে স্ন্যাপশট API ব্যবহার করতে হয় প্রতিটি সমর্থিত প্রসঙ্গ প্রকারের জন্য বর্তমান অবস্থা পেতে। আরও তথ্যের জন্য, শুরু করুন দেখুন। অবহেলিত প্রাসঙ্গিক সংকেতগুলির বিশদ বিবরণের জন্য, নিম্নলিখিত প্রসারণযোগ্য বিজ্ঞপ্তিটি খুলুন:

বর্তমান কার্যকলাপ পান

ব্যবহারকারীর বর্তমান কার্যকলাপ পেতে, getDetectedActivity() কে কল করুন, যা একটি ActivityRecognitionResult প্রদান করে যাতে ব্যবহারকারীর সাম্প্রতিক কার্যকলাপ সম্পর্কে তথ্য থাকে।

getDetectedActivity() পদ্ধতির জন্য com.google.android.gms.permission.ACTIVITY_RECOGNITION অনুমতি প্রয়োজন। AndroidManifest.xml এ এই অনুমতি যোগ করুন।

ব্যবহারকারীর বর্তমান কার্যকলাপ পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. SnapshotClient এর একটি উদাহরণ তৈরি করতে getSnapshotClient() কে কল করুন।
  2. একটি OnSuccessListener তৈরি করতে addOnSuccessListener ব্যবহার করুন যা একটি DetectedActivityResponse শুনতে পারে।
  3. ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে getStatus() কল করুন।
  4. একটি 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 সক্রিয় করতে হবে। আরও তথ্যের জন্য, সাইনআপ এবং API কী দেখুন এবং শুরু করুন

কাছাকাছি বীকন সম্পর্কে তথ্য পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. ব্যবহারকারী প্রয়োজনীয় অনুমতি দিয়েছেন কিনা তা পরীক্ষা করুন। নিম্নলিখিত উদাহরণটি 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;
        }
    
  2. একটি 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"));
    
  3. getSnapshotClient.getBeaconState() কে কল করুন।

  4. একটি OnSuccessListener তৈরি করতে addOnSuccessListener ব্যবহার করুন যা একটি BeaconStateResponse শুনতে পারে।

  5. ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে getStatus() কল করুন।

  6. বীকন স্টেট ফেরত দিতে BeaconStateResponse.getBeaconState() কে কল করুন।

  7. BeaconState.BeaconInfo পেতে কল করুন 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() কল করতে পারেন।

বর্তমান হেডফোন স্থিতি পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. getSnapshotClient.getHeadphoneState() কে কল করুন।
  2. একটি OnSuccessListener তৈরি করতে addOnSuccessListener ব্যবহার করুন যা একটি HeadphoneStateResponse শুনতে পারে।
  3. ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে getStatus() কল করুন।
  4. সফল হলে, হেডফোনের অবস্থা ফেরাতে 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() এ কল করতে পারেন৷

getLocation() পদ্ধতির জন্য android.permission.ACCESS_FINE_LOCATION অনুমতি প্রয়োজন। AndroidManifest.xml এ এই অনুমতি যোগ করুন।

বর্তমান অবস্থান পেতে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

  1. ব্যবহারকারী প্রয়োজনীয় অনুমতি দিয়েছেন কিনা তা পরীক্ষা করুন। নিম্নলিখিত উদাহরণটি 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;
        }
    
  2. getSnapshotClient.getLocation() কে কল করুন।

  3. একটি OnSuccessListener তৈরি করতে addOnSuccessListener ব্যবহার করুন যা একটি LocationResponse শুনতে পারে।

  4. ফলাফলটি বৈধ কিনা তা নিশ্চিত করতে getStatus() কল করুন।

  5. বর্তমান Location ফেরত দিতে LocationResponse.getLocation() কে কল করুন।

নিম্নলিখিত উদাহরণ দেখায় কিভাবে বর্তমান অবস্থান পেতে হয়:

Awareness.getSnapshotClient(this).getLocation()
    .addOnSuccessListener(new OnSuccessListener<LocationResponse>() {
        @Override
        public void onSuccess(LocationResponse locationResponse) {
            Location loc = locationResponse.getLocationResult();
        }
    })