আপনার অ্যাপটি ব্লুটুথ বা ব্লুটুথ লো এনার্জির মাধ্যমে যোগাযোগ করার আগে, আপনাকে ডিভাইসে ব্লুটুথ সমর্থিত কিনা তা যাচাই করতে হবে এবং যদি তা হয়, তাহলে নিশ্চিত করুন যে এটি সক্ষম আছে। মনে রাখবেন যে <uses-feature.../>
ম্যানিফেস্ট ফাইল এন্ট্রিতে android:required
বৈশিষ্ট্যটি false
সেট করা থাকলেই এই চেকটি প্রয়োজনীয়।
যদি ব্লুটুথ সমর্থিত না হয়, তাহলে আপনার উচিত যে কোনো ব্লুটুথ বৈশিষ্ট্য অক্ষম করা। যদি ব্লুটুথ সমর্থিত হয়, কিন্তু অক্ষম থাকে, তাহলে আপনি অনুরোধ করতে পারেন যে ব্যবহারকারী আপনার অ্যাপ না রেখেই ব্লুটুথ সক্ষম করুন৷
প্রথম ধাপ হল নিম্নলিখিত APIগুলি ব্যবহার করার জন্য আপনার ম্যানিফেস্ট ফাইলে ব্লুটুথ অনুমতিগুলি যোগ করা ৷
একবার অনুমতি পাওয়া গেলে, BluetoothAdapter
ব্যবহার করে ব্লুটুথ সেটআপ দুটি ধাপে সম্পন্ন হয়:
BluetoothAdapter
পান।যে কোনো এবং সমস্ত ব্লুটুথ কার্যকলাপের জন্য
BluetoothAdapter
প্রয়োজন৷BluetoothAdapter
ডিভাইসের নিজস্ব ব্লুটুথ অ্যাডাপ্টার (ব্লুটুথ রেডিও) প্রতিনিধিত্ব করে। একটিBluetoothAdapter
পেতে, আপনার প্রথমে একটিContext
থাকতে হবে।BluetoothManager
সিস্টেম পরিষেবার একটি উদাহরণ পেতে এই প্রসঙ্গটি ব্যবহার করুন।BluetoothManager#getAdapter
কল করা আপনাকে একটিBluetoothAdapter
অবজেক্ট দেবে। যদিgetAdapter()
শূন্য দেয়, তাহলে ডিভাইসটি ব্লুটুথ সমর্থন করে না।যেমন:
কোটলিন
val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java) val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
জাভা
BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
ব্লুটুথ সক্ষম করুন।
এর পরে, আপনাকে নিশ্চিত করতে হবে যে ব্লুটুথ সক্ষম আছে। ব্লুটুথ বর্তমানে সক্ষম আছে কিনা তা পরীক্ষা করতে
isEnabled()
কল করুন। যদি এই পদ্ধতি মিথ্যা হয়, তাহলে ব্লুটুথ অক্ষম করা হয়। ব্লুটুথ সক্ষম করার অনুরোধ করতে, একটিACTION_REQUEST_ENABLE
অভিপ্রায় ক্রিয়া পাস করেstartActivityForResult()
এ কল করুন৷ এই কলটি সিস্টেম সেটিংসের মাধ্যমে ব্লুটুথ সক্ষম করার জন্য একটি অনুরোধ জারি করে (আপনার অ্যাপ বন্ধ না করে)।যেমন:
কোটলিন
if (bluetoothAdapter?.isEnabled == false) { val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT) }
জাভা
if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
ব্লুটুথ সক্ষম করার জন্য ব্যবহারকারীর অনুমতির অনুরোধ করার জন্য একটি ডায়ালগ প্রদর্শিত হয়, যেমন চিত্র 1-এ দেখানো হয়েছে৷ ব্যবহারকারী যদি অনুমতি দেয়, সিস্টেমটি ব্লুটুথ সক্ষম করতে শুরু করে এবং প্রক্রিয়াটি সম্পূর্ণ হয়ে গেলে (বা ব্যর্থ হয়ে গেলে) ফোকাস আপনার অ্যাপে ফিরে আসে৷
চিত্র 1. সক্রিয় ব্লুটুথ ডায়ালগ।
startActivityForResult()
এ পাস করা REQUEST_ENABLE_BT
ধ্রুবকটি একটি স্থানীয়ভাবে সংজ্ঞায়িত পূর্ণসংখ্যা যা অবশ্যই 0-এর থেকে বড় বা সমান হতে হবে। সিস্টেমটি requestCode
প্যারামিটার হিসাবে আপনার onActivityResult()
বাস্তবায়নে এই ধ্রুবকটি আপনাকে ফেরত দেয়।
ব্লুটুথ সক্ষম করা সফল হলে, আপনার কার্যকলাপ onActivityResult()
কলব্যাকে RESULT_OK
ফলাফল কোড পায়। যদি কোনো ত্রুটির কারণে ব্লুটুথ সক্ষম না হয় (অথবা ব্যবহারকারী "অস্বীকার" করেন) তাহলে ফলাফলের কোড হল RESULT_CANCELED
।
ঐচ্ছিকভাবে, আপনার অ্যাপটি ACTION_STATE_CHANGED
সম্প্রচারের অভিপ্রায়ের জন্যও শুনতে পারে, যেটি সিস্টেম সম্প্রচার করে যখনই ব্লুটুথ অবস্থার পরিবর্তন হয়। এই সম্প্রচারে EXTRA_STATE
এবং EXTRA_PREVIOUS_STATE
অতিরিক্ত ক্ষেত্রগুলি রয়েছে, যেখানে যথাক্রমে নতুন এবং পুরানো ব্লুটুথ অবস্থা রয়েছে৷ এই অতিরিক্ত ক্ষেত্রের সম্ভাব্য মানগুলি হল STATE_TURNING_ON
, STATE_ON
, STATE_TURNING_OFF
, এবং STATE_OFF
৷ ব্লুটুথ স্টেটে করা রানটাইম পরিবর্তনগুলি শনাক্ত করার জন্য আপনার অ্যাপের প্রয়োজন হলে এই সম্প্রচারের জন্য শোনা উপকারী হতে পারে।
একবার ডিভাইসে ব্লুটুথ সক্ষম হয়ে গেলে, আপনি ব্লুটুথ ক্লাসিক এবং ব্লুটুথ লো এনার্জি উভয়ই ব্যবহার করতে পারেন৷
ব্লুটুথ ক্লাসিকের জন্য, আপনি ব্লুটুথ ডিভাইসগুলি খুঁজে পেতে এবং ব্লুটুথ ডিভাইসের সাথে সংযোগ করতে পারেন৷
ব্লুটুথ লো এনার্জির জন্য, আপনি BLE ডিভাইসগুলি খুঁজে পেতে পারেন, একটি GATT সার্ভারের সাথে সংযোগ করতে পারেন এবং BLE ডেটা স্থানান্তর করতে পারেন ৷