ব্লুটুথ ওভারভিউ

অ্যান্ড্রয়েড প্ল্যাটফর্মে ব্লুটুথ নেটওয়ার্ক স্ট্যাকের জন্য সমর্থন রয়েছে, যা একটি ডিভাইসকে অন্য ব্লুটুথ ডিভাইসের সাথে ওয়্যারলেসভাবে ডেটা বিনিময় করতে দেয়। অ্যাপ ফ্রেমওয়ার্ক ব্লুটুথ এপিআই এর মাধ্যমে ব্লুটুথ কার্যকারিতা অ্যাক্সেস প্রদান করে। এই APIগুলি অ্যাপগুলিকে অন্যান্য ব্লুটুথ ডিভাইসগুলির সাথে সংযোগ করতে দেয়, পয়েন্ট-টু-পয়েন্ট এবং মাল্টিপয়েন্ট ওয়্যারলেস বৈশিষ্ট্যগুলি সক্ষম করে৷

ব্লুটুথ API ব্যবহার করে, একটি অ্যাপ নিম্নলিখিত কাজগুলি করতে পারে:

  • অন্যান্য ব্লুটুথ ডিভাইসের জন্য স্ক্যান করুন।
  • পেয়ার করা ব্লুটুথ ডিভাইসের জন্য স্থানীয় ব্লুটুথ অ্যাডাপ্টার জিজ্ঞাসা করুন৷
  • RFCOMM চ্যানেল স্থাপন করুন।
  • পরিষেবা আবিষ্কারের মাধ্যমে অন্যান্য ডিভাইসের সাথে সংযোগ করুন।
  • অন্যান্য ডিভাইসে এবং থেকে ডেটা স্থানান্তর করুন।
  • একাধিক সংযোগ পরিচালনা করুন।

এই বিষয়টি ক্লাসিক ব্লুটুথের উপর ফোকাস করে। ক্লাসিক ব্লুটুথ হল আরও ব্যাটারি-নিবিড় ক্রিয়াকলাপগুলির জন্য সঠিক পছন্দ, যার মধ্যে স্ট্রিমিং এবং ডিভাইসগুলির মধ্যে যোগাযোগ অন্তর্ভুক্ত৷ কম শক্তির প্রয়োজনীয়তা সহ ব্লুটুথ ডিভাইসগুলির জন্য, ব্লুটুথ লো এনার্জি সংযোগগুলি ব্যবহার করার কথা বিবেচনা করুন৷

এই ডকুমেন্টেশনটি বিভিন্ন ব্লুটুথ প্রোফাইল বর্ণনা করে এবং ব্লুটুথ ব্যবহার করে যোগাযোগের জন্য প্রয়োজনীয় চারটি প্রধান কাজ সম্পাদন করতে ব্লুটুথ API গুলি কীভাবে ব্যবহার করতে হয় তা ব্যাখ্যা করে:

  • ব্লুটুথ সেট আপ করা হচ্ছে
  • স্থানীয় এলাকায় জোড়া লাগানো বা উপলব্ধ ডিভাইসগুলি খোঁজা৷
  • সংযোগকারী ডিভাইস।
  • ডিভাইসের মধ্যে ডেটা স্থানান্তর।

ব্লুটুথ API ব্যবহার করার একটি প্রদর্শনের জন্য, ব্লুটুথ চ্যাট নমুনা অ্যাপটি দেখুন।

বুনিয়াদি

ব্লুটুথ-সক্ষম ডিভাইসগুলি একে অপরের মধ্যে ডেটা প্রেরণের জন্য, তাদের প্রথমে একটি জোড়া প্রক্রিয়া ব্যবহার করে যোগাযোগের একটি চ্যানেল তৈরি করতে হবে। একটি ডিভাইস, একটি আবিষ্কারযোগ্য ডিভাইস, ইনকামিং সংযোগ অনুরোধের জন্য নিজেকে উপলব্ধ করে। অন্য একটি ডিভাইস একটি পরিষেবা আবিষ্কার প্রক্রিয়া ব্যবহার করে আবিষ্কারযোগ্য ডিভাইসটি খুঁজে পায়। আবিষ্কারযোগ্য ডিভাইসটি জোড়ার অনুরোধ গ্রহণ করার পরে, দুটি ডিভাইস একটি বন্ধন প্রক্রিয়া সম্পন্ন করে যেখানে তারা নিরাপত্তা কী বিনিময় করে। ডিভাইসগুলি পরে ব্যবহারের জন্য এই কীগুলি ক্যাশে করে৷ পেয়ারিং এবং বন্ডিং প্রক্রিয়া সম্পূর্ণ হওয়ার পরে, দুটি ডিভাইস তথ্য বিনিময় করে। সেশন সম্পূর্ণ হলে, যে ডিভাইসটি পেয়ারিংয়ের অনুরোধটি শুরু করেছিল সেটি চ্যানেলটি প্রকাশ করে যেটি এটিকে আবিষ্কারযোগ্য ডিভাইসের সাথে লিঙ্ক করেছিল। দুটি ডিভাইস বন্ডেড থাকে, তাই তারা ভবিষ্যতের সেশনে স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ করতে পারে যতক্ষণ না তারা একে অপরের সীমার মধ্যে থাকে এবং কোনও ডিভাইসই বন্ধনটি সরিয়ে না দেয়।

ব্লুটুথ এপিআই ব্যবহার করার জন্য আপনার ম্যানিফেস্ট ফাইলে একাধিক অনুমতি ঘোষণা করতে হবে। একবার আপনার অ্যাপের ব্লুটুথ ব্যবহার করার অনুমতি পাওয়া গেলে, আপনার অ্যাপটিকে BluetoothAdapter অ্যাক্সেস করতে হবে এবং ডিভাইসে ব্লুটুথ উপলব্ধ কিনা তা নির্ধারণ করতে হবে । ব্লুটুথ উপলব্ধ থাকলে, সংযোগ করার জন্য তিনটি ধাপ রয়েছে:

কিছু ডিভাইস একটি নির্দিষ্ট ব্লুটুথ প্রোফাইল ব্যবহার করে যা এটি প্রদান করা ডেটা ঘোষণা করে।

মূল ক্লাস এবং ইন্টারফেস

সমস্ত ব্লুটুথ এপিআই android.bluetooth প্যাকেজে উপলব্ধ। ব্লুটুথ সংযোগ তৈরি করার জন্য আপনার প্রয়োজনীয় ক্লাস এবং ইন্টারফেসগুলি নিম্নরূপ:

BluetoothAdapter
স্থানীয় ব্লুটুথ অ্যাডাপ্টার (ব্লুটুথ রেডিও) প্রতিনিধিত্ব করে। BluetoothAdapter হল সমস্ত ব্লুটুথ ইন্টারঅ্যাকশনের এন্ট্রি-পয়েন্ট। এটি ব্যবহার করে, আপনি অন্যান্য ব্লুটুথ ডিভাইসগুলি আবিষ্কার করতে পারেন, বন্ডেড (জোড়া) ডিভাইসগুলির একটি তালিকা জিজ্ঞাসা করতে পারেন, একটি পরিচিত MAC ঠিকানা ব্যবহার করে একটি BluetoothDevice ইনস্ট্যান্টিয়েট করতে পারেন এবং অন্যান্য ডিভাইস থেকে যোগাযোগের জন্য একটি BluetoothServerSocket তৈরি করতে পারেন৷
BluetoothDevice
একটি দূরবর্তী ব্লুটুথ ডিভাইস প্রতিনিধিত্ব করে। BluetoothSocket মাধ্যমে দূরবর্তী ডিভাইসের সাথে সংযোগের অনুরোধ করতে বা ডিভাইসটির নাম, ঠিকানা, শ্রেণী এবং বন্ধন অবস্থার মতো তথ্য অনুসন্ধান করতে এটি ব্যবহার করুন।
BluetoothSocket
একটি ব্লুটুথ সকেটের জন্য ইন্টারফেস প্রতিনিধিত্ব করে (একটি TCP Socket অনুরূপ)। এটি সেই সংযোগ বিন্দু যা একটি অ্যাপকে InputStream এবং OutputStream ব্যবহার করে অন্য ব্লুটুথ ডিভাইসের সাথে ডেটা বিনিময় করতে দেয়৷
BluetoothServerSocket
একটি ওপেন সার্ভার সকেট প্রতিনিধিত্ব করে যা ইনকামিং অনুরোধের জন্য শোনে (একটি টিসিপি ServerSocket অনুরূপ)। দুটি ডিভাইস সংযোগ করার জন্য, একটি ডিভাইসকে অবশ্যই এই শ্রেণীর সাথে একটি সার্ভার সকেট খুলতে হবে। যখন একটি দূরবর্তী ব্লুটুথ ডিভাইস এই ডিভাইসে একটি সংযোগের অনুরোধ করে, তখন ডিভাইসটি সংযোগটি গ্রহণ করে এবং তারপর একটি সংযুক্ত BluetoothSocket ফেরত দেয়।
BluetoothClass
একটি ব্লুটুথ ডিভাইসের সাধারণ বৈশিষ্ট্য এবং ক্ষমতা বর্ণনা করে। এটি বৈশিষ্ট্যগুলির একটি শুধুমাত্র পঠনযোগ্য সেট যা ডিভাইসের ক্লাস এবং পরিষেবাগুলিকে সংজ্ঞায়িত করে৷ যদিও এই তথ্যটি একটি ডিভাইসের ধরন সম্পর্কে একটি দরকারী ইঙ্গিত প্রদান করে, তবে এই শ্রেণীর বৈশিষ্ট্যগুলি ডিভাইসটি সমর্থন করে এমন সমস্ত ব্লুটুথ প্রোফাইল এবং পরিষেবাগুলিকে বর্ণনা করে না৷
BluetoothProfile
একটি ইন্টারফেস যা একটি ব্লুটুথ প্রোফাইল প্রতিনিধিত্ব করে। একটি ব্লুটুথ প্রোফাইল ডিভাইসগুলির মধ্যে ব্লুটুথ-ভিত্তিক যোগাযোগের জন্য একটি বেতার ইন্টারফেস স্পেসিফিকেশন। একটি উদাহরণ হ্যান্ডস-ফ্রি প্রোফাইল। প্রোফাইল সম্পর্কে আরও আলোচনার জন্য, ব্লুটুথ প্রোফাইলগুলি দেখুন।
BluetoothHeadset
মোবাইল ফোনের সাথে ব্যবহার করার জন্য ব্লুটুথ হেডসেটগুলির জন্য সমর্থন প্রদান করে। এতে ব্লুটুথ হেডসেট প্রোফাইল এবং হ্যান্ডস-ফ্রি (v1.5) প্রোফাইল উভয়ই অন্তর্ভুক্ত রয়েছে।
BluetoothA2dp
অ্যাডভান্সড অডিও ডিস্ট্রিবিউশন প্রোফাইল (A2DP) ব্যবহার করে ব্লুটুথ সংযোগের মাধ্যমে কীভাবে উচ্চ-মানের অডিও এক ডিভাইস থেকে অন্য ডিভাইসে স্ট্রিম করা যায় তা সংজ্ঞায়িত করে।
BluetoothHealth
একটি হেলথ ডিভাইস প্রোফাইল প্রক্সি উপস্থাপন করে যা ব্লুটুথ পরিষেবা নিয়ন্ত্রণ করে।
BluetoothHealthCallback
একটি বিমূর্ত শ্রেণী যা আপনি BluetoothHealth কলব্যাক বাস্তবায়ন করতে ব্যবহার করেন। অ্যাপের রেজিস্ট্রেশন অবস্থা এবং ব্লুটুথ চ্যানেলের অবস্থার পরিবর্তন সম্পর্কে আপডেট পেতে আপনাকে অবশ্যই এই ক্লাসটি প্রসারিত করতে হবে এবং কলব্যাক পদ্ধতিগুলি প্রয়োগ করতে হবে।
BluetoothHealthAppConfiguration
একটি অ্যাপ কনফিগারেশনের প্রতিনিধিত্ব করে যা ব্লুটুথ হেলথ থার্ড-পার্টি অ্যাপটি একটি দূরবর্তী ব্লুটুথ হেলথ ডিভাইসের সাথে যোগাযোগ করতে নিবন্ধন করে।
BluetoothProfile.ServiceListener
একটি ইন্টারফেস যা BluetoothProfile ইন্টারপ্রসেস কমিউনিকেশন (IPC) ক্লায়েন্টদের যখন একটি নির্দিষ্ট প্রোফাইল চালিত অভ্যন্তরীণ পরিষেবার সাথে সংযুক্ত বা সংযোগ বিচ্ছিন্ন করা হয় তখন তাদের বিজ্ঞপ্তি দেয়।