ব্লুটুথ প্রোফাইল

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

ব্লুটুথ API নিম্নলিখিত ব্লুটুথ প্রোফাইলের জন্য ইমপ্লিমেন্টেশন প্রদান করে:

  • হেডসেট। হেডসেট প্রোফাইল, মোবাইল ফোনের সাথে ব্লুটুথ হেডসেট ব্যবহার করার জন্য সহায়তা প্রদান করে। Android, BluetoothHeadset ক্লাস প্রদান করে, যা ব্লুটুথ হেডসেট পরিষেবা কন্ট্রোল করার জন্য একটি প্রক্সি। এর মধ্যে ব্লুটুথ হেডসেট এবং হ্যান্ডস-ফ্রি (v1.5) প্রোফাইল অন্তর্ভুক্ত। BluetoothHeadset ক্লাসে AT কমান্ডের জন্য সহায়তা অন্তর্ভুক্ত আছে। এই বিষয়ে আরও জানতে, ভেন্ডর-নির্দিষ্ট AT কমান্ড দেখুন।
  • A2DP. Advanced Audio Distribution Profile (A2DP) প্রোফাইল নির্ধারণ করে যে কীভাবে ব্লুটুথ কানেকশনের মাধ্যমে একটি ডিভাইস থেকে অন্য ডিভাইসে খুব ভাল কোয়ালিটির অডিও স্ট্রিম করা যেতে পারে। Android-এ BluetoothA2dp ক্লাস থাকে, যা ব্লুটুথ A2DP পরিষেবা নিয়ন্ত্রণ করার জন্য প্রক্সি হিসেবে কাজ করে।
  • হেল্থ ডিভাইস। Android, ব্লুটুথ হেলথ ডিভাইস প্রোফাইলের (HDP) জন্য সহায়তা প্রদান করে। এটি আপনাকে এমন অ্যাপ তৈরি করতে দেয় যা ব্লুটুথ ব্যবহার করে ব্লুটুথ-সমর্থিত স্বাস্থ্য ডিভাইসের সাথে যোগাযোগ করে, যেমন হার্ট-রেট মনিটর, ব্লাড মিটার, থার্মোমিটার, স্কেল ইত্যাদি। কাজ করে এমন ডিভাইসের তালিকা এবং সেগুলির সংশ্লিষ্ট ডিভাইস ডেটা স্পেশালাইজেশন কোডের জন্য, Bluetooth-এর HDP ডিভাইস ডেটা স্পেশালাইজেশন দেখুন। এই মানগুলি ISO/IEEE 11073-20601 [7] স্পেসিফিকেশনেও উল্লেখ করা হয়েছে নামকরণ কোড অ্যানেক্সে MDC_DEV_SPEC_PROFILE_* হিসেবে। HDP সম্পর্কে আরও তথ্যের জন্য, হেলথ ডিভাইস প্রোফাইল দেখুন।

প্রোফাইল নিয়ে কাজ করার প্রাথমিক ধাপগুলি এখানে দেওয়া হল:

  1. ব্লুটুথ সেট-আপ-এ যেমন বর্ণনা করা হয়েছে, সেই অনুযায়ী ডিফল্ট অ্যাডাপ্টার পান।
  2. BluetoothProfile.ServiceListener সেট-আপ করুন। এই লিসেনার BluetoothProfile ক্লায়েন্টদের পরিষেবার সাথে কানেক্ট বা ডিসকানেক্ট হওয়ার সময় বিজ্ঞপ্তি পাঠায়।
  3. প্রোফাইলের সাথে যুক্ত প্রোফাইল প্রক্সি অবজেক্টের সাথে কানেকশন স্থাপন করতে getProfileProxy() ব্যবহার করুন। নিম্নলিখিত উদাহরণে, প্রোফাইল প্রক্সি অবজেক্ট হল BluetoothHeadset-এর একটি ইনস্ট্যান্স।
  4. onServiceConnected()-এ, প্রোফাইল প্রক্সি অবজেক্টের হ্যান্ডেল পান।
  5. প্রোফাইল প্রক্সি অবজেক্ট পেয়ে গেলে, কানেকশনের স্ট্যাটাস মনিটর করতে এবং সেই প্রোফাইলের সাথে প্রাসঙ্গিক অন্যান্য অপারেশন করতে এটি ব্যবহার করুন।

নিচে দেওয়া কোড স্নিপেট থেকে জানতে পারবেন যে কীভাবে BluetoothHeadset প্রক্সি অবজেক্টের সাথে কানেক্ট করতে হয় যাতে আপনি হেডসেট প্রোফাইল কন্ট্রোল করতে পারেন:

Kotlin

var bluetoothHeadset: BluetoothHeadset? = null

// Get the default adapter
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()

private val profileListener = object : BluetoothProfile.ServiceListener {

    override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = proxy as BluetoothHeadset
        }
    }

    override fun onServiceDisconnected(profile: Int) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null
        }
    }
}

// Establish connection to the proxy.
bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)

জাভা

BluetoothHeadset bluetoothHeadset;

// Get the default adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter.closeProfileProxy(bluetoothHeadset);

ভেন্ডর-নির্দিষ্ট AT কমান্ড

হেডসেট (যেমন, Plantronics +XEVENT কমান্ড) দ্বারা পাঠানো পূর্বনির্ধারিত ভেন্ডর-নির্দিষ্ট AT কমান্ডের সিস্টেম ব্রডকাস্ট পাওয়ার জন্য অ্যাপ রেজিস্টার করতে পারে। যেমন, কোনও অ্যাপ কানেক্ট করা ডিভাইসের ব্যাটারি লেভেল সংক্রান্ত ব্রডকাস্ট পেতে পারে এবং ব্যবহারকারীকে বিজ্ঞপ্তি পাঠাতে বা প্রয়োজন অনুযায়ী অন্য অ্যাকশন নিতে পারে। হেডসেটের জন্য ভেন্ডর-নির্দিষ্ট AT কমান্ড ম্যানেজ করতে ACTION_VENDOR_SPECIFIC_HEADSET_EVENT ইনটেন্টের জন্য একটি ব্রডকাস্ট রিসিভার তৈরি করুন।

হেল্থ ডিভাইস প্রোফাইল

Android-এ ব্লুটুথ হেলথ ডিভাইস প্রোফাইল (HDP) কাজ করে। Bluetooth Health API-তে এই ক্লাসগুলি অন্তর্ভুক্ত আছে BluetoothHealth, BluetoothHealthCallback, এবং BluetoothHealthAppConfiguration, যেগুলি কী ক্লাস এবং ইন্টারফেস-এ বর্ণনা করা আছে।

ব্লুটুথ হেলথ API ব্যবহার করার সময়, এই গুরুত্বপূর্ণ HDP ধারণাগুলি বোঝা সহায়ক:

সোর্স
ওজন মাপার স্কেল, গ্লুকোজ মিটার বা থার্মোমিটারের মতো স্বাস্থ্য সংক্রান্ত ডিভাইস, যা Android ফোন বা ট্যাবলেটের মতো স্মার্ট ডিভাইসে মেডিকেল ডেটা ট্রান্সমিট করে।
সিঙ্ক
স্মার্ট ডিভাইস যা মেডিকেল ডেটা পায়। HDP অ্যাপে, সিঙ্ককে BluetoothHealthAppConfiguration অবজেক্ট হিসেবে দেখানো হয়।
রেজিস্ট্রেশন
নির্দিষ্ট কোনও স্বাস্থ্য ডিভাইসের সাথে যোগাযোগ করার জন্য সিঙ্ক রেজিস্টার করার প্রসেস।
কানেকশন
স্বাস্থ্য ডিভাইস (সোর্স) এবং স্মার্ট ডিভাইসের (সিঙ্ক) মধ্যে চ্যানেল খোলার জন্য ব্যবহৃত প্রক্রিয়া।

HDP অ্যাপ তৈরি করা

HDP অ্যাপ তৈরি করার প্রাথমিক ধাপগুলি এখানে দেওয়া হল:

  1. BluetoothHealth প্রক্সি অবজেক্টের রেফারেন্স পান। সাধারণ হেডসেট ও A2DP প্রোফাইল ডিভাইসের মতো, প্রোফাইল প্রক্সি অবজেক্টের সাথে কানেকশন তৈরি করতে, আপনাকে অবশ্যই getProfileProxy()-এ BluetoothProfile.ServiceListener ও HEALTH প্রোফাইল টাইপ দিয়ে কল করতে হবে।

  2. BluetoothHealthCallback তৈরি করুন এবং অ্যাপ কনফিগারেশন (BluetoothHealthAppConfiguration) রেজিস্টার করুন যা স্বাস্থ্য সংক্রান্ত ডেটা সিঙ্ক হিসেবে কাজ করে।

  3. কোনও হেল্থ ডিভাইসের সাথে কানেকশন তৈরি করুন।

  4. কোনও স্বাস্থ্য ডিভাইসের সাথে সফলভাবে কানেক্ট করা হলে, ফাইল ডেসক্রিপটর ব্যবহার করে স্বাস্থ্য ডিভাইসে পড়ুন এবং লিখুন। প্রাপ্ত ডেটা ব্যাখ্যা করার জন্য হেলথ ম্যানেজার ব্যবহার করতে হবে, যা IEEE 11073 স্পেসিফিকেশন প্রয়োগ করে।

  5. হয়ে গেলে, হেলথ চ্যানেল বন্ধ করে দিন এবং অ্যাপটি আনরেজিস্টার করুন। দীর্ঘ সময় ধরে কোনও অ্যাক্টিভিটি না থাকলে চ্যানেলটি বন্ধ হয়ে যায়।