কাছাকাছি Wi-Fi ডিভাইসগুলি অ্যাক্সেস করার অনুমতির অনুরোধ করুন৷

যে অ্যাপগুলি Android 13 (API স্তর 33) বা উচ্চতরকে লক্ষ্য করে এবং Wi-Fi সংযোগগুলি পরিচালনা করে তাদের NEARBY_WIFI_DEVICES রানটাইম অনুমতির অনুরোধ করা উচিত৷ এই অনুমতিটি কাছাকাছি Wi-Fi ডিভাইসে একটি অ্যাপের অ্যাক্সেসকে সমর্থন করা সহজ করে তোলে; Android এর পূর্ববর্তী সংস্করণগুলিতে, এই অ্যাপগুলির পরিবর্তে ACCESS_FINE_LOCATION অনুমতি ঘোষণা করতে হবে৷

অনুমতি কাছাকাছি ডিভাইস গোষ্ঠীর অংশ

NEARBY_WIFI_DEVICES অনুমতিটি আশেপাশের ডিভাইসগুলির অনুমতি গোষ্ঠীর অংশ৷ অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) এ যোগ করা এই গ্রুপটিতে ব্লুটুথ এবং আল্ট্রা-ওয়াইডব্যান্ড সম্পর্কিত অনুমতিও রয়েছে। আপনি যখন এই অনুমতি গোষ্ঠী থেকে অনুমতিগুলির যেকোন সমন্বয়ের জন্য অনুরোধ করেন, সিস্টেমটি একটি একক রানটাইম ডায়ালগ দেখায় এবং ব্যবহারকারীকে কাছের ডিভাইসগুলিতে আপনার অ্যাপের অ্যাক্সেস অনুমোদন করতে বলে৷ সিস্টেম সেটিংসে, ব্যবহারকারীকে অবশ্যই একটি গোষ্ঠী হিসাবে কাছাকাছি ডিভাইসের অনুমতিগুলি সক্রিয় এবং অক্ষম করতে হবে; উদাহরণস্বরূপ, ব্যবহারকারীরা Wi-Fi অ্যাক্সেস অক্ষম করতে পারে না তবে একটি প্রদত্ত অ্যাপের জন্য ব্লুটুথ অ্যাক্সেস সক্ষম রাখতে পারে।

দৃঢ়ভাবে দাবি করুন যে আপনার অ্যাপটি প্রকৃত অবস্থান তৈরি করে না

আপনি যখন অ্যান্ড্রয়েড 13 বা উচ্চতরকে টার্গেট করেন, তখন বিবেচনা করুন যে আপনার অ্যাপ কখনও Wi-Fi API থেকে অবস্থানের তথ্য সংগ্রহ করে কিনা; যদি না হয়, আপনি দৃঢ়ভাবে যে জোর করা উচিত. এই দাবি করার জন্য, নিম্নলিখিত কোড স্নিপেটে দেখানো হিসাবে আপনার অ্যাপের ম্যানিফেস্ট ফাইলে neverForLocationusesPermissionFlags অ্যাট্রিবিউট সেট করুন। আপনি যখন বলবেন যে ব্লুটুথ ডিভাইসের তথ্য অবস্থানের জন্য কখনই ব্যবহার করা হয় না তখন আপনি যে প্রক্রিয়াটি করেন এই প্রক্রিয়াটির অনুরূপ:

<manifest ...>
    <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"
                     android:usesPermissionFlags="neverForLocation" />
    <application ...>
        ...
    </application>
</manifest>

পূর্ববর্তী সংস্করণ এবং কিছু API-এর জন্য অবস্থানের অনুমতি প্রয়োজন

বেশ কিছু Wi-Fi API-এর জন্য ACCESS_FINE_LOCATION অনুমতির প্রয়োজন হয়, এমনকি যখন আপনার অ্যাপটি Android 13 বা উচ্চতরকে লক্ষ্য করে। উদাহরণগুলির মধ্যে WifiManager ক্লাস থেকে নিম্নলিখিত পদ্ধতিগুলি অন্তর্ভুক্ত রয়েছে:

এছাড়াও, যেহেতু NEARBY_WIFI_DEVICES অনুমতি শুধুমাত্র Android 13 এবং উচ্চতর সংস্করণে উপলব্ধ, তাই আপনার অ্যাপে পিছিয়ে থাকা সামঞ্জস্য প্রদানের জন্য আপনাকে ACCESS_FINE_LOCATION এর জন্য যেকোনো ঘোষণা রাখতে হবে। যাইহোক, যতক্ষণ না আপনার অ্যাপটি অন্যথায় সুনির্দিষ্ট অবস্থানের তথ্যের উপর নির্ভর না করে, আপনি এই অনুমতির সর্বোচ্চ SDK সংস্করণটি 32 -এ সেট করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
                     android:maxSdkVersion="32" />
    <application ...>
        ...
    </application>
</manifest>

অনুমতির প্রয়োজন এমন APIগুলির জন্য পরীক্ষা করুন৷

যদি আপনার অ্যাপটি Android 13 বা উচ্চতরকে টার্গেট করে, তাহলে আপনাকে অবশ্যই নিম্নলিখিত Wi-Fi API-কে কল করার জন্য NEARBY_WIFI_DEVICES অনুমতি ঘোষণা করতে হবে:

ওয়াই-ফাই অ্যাক্সেস ওয়ার্কফ্লো

চিত্র 1 Android 13 বা উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে ওয়াই-ফাই অ্যাক্সেস ওয়ার্কফ্লো দেখায়, যে অ্যাপগুলি Android 13 বা উচ্চতরকে লক্ষ্য করে। মনে রাখবেন, যতক্ষণ না আপনি দাবি করেন যে আপনার অ্যাপটি Wi-Fi ডিভাইসের তথ্য থেকে প্রকৃত অবস্থান গ্রহণ করে না, আপনাকে আর ACCESS_FINE_LOCATION অনুমতি ঘোষণা করতে হবে না:

চিত্র 1. Android 13 (API স্তর 33) বা উচ্চতরকে লক্ষ্য করে এমন একটি অ্যাপ Wi-Fi তথ্য অ্যাক্সেস করতে পারে কিনা তা নির্ধারণ করতে ফ্লো চার্ট।

চিত্র 2 12L বা তার নিচে চালিত ডিভাইসগুলিতে Wi-Fi অ্যাক্সেস ওয়ার্কফ্লো দেখায়। ACCESS_FINE_LOCATION অনুমতির উপর নির্ভরতা নোট করুন৷

চিত্র 2. 12L (API স্তর 32) বা তার নিচের একটি অ্যাপ ওয়াই-ফাই তথ্য অ্যাক্সেস করতে পারে কিনা তা নির্ধারণ করতে ফ্লো চার্ট।