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

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

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

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

এখানে একটি প্রোফাইলের সাথে কাজ করার জন্য প্রাথমিক পদক্ষেপগুলি রয়েছে:

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

নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে একটি BluetoothHeadset প্রক্সি অবজেক্টের সাথে সংযোগ করতে হয় যাতে আপনি হেডসেট প্রোফাইল নিয়ন্ত্রণ করতে পারেন:

কোটলিন

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 কমান্ড

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

স্বাস্থ্য ডিভাইস প্রোফাইল

অ্যান্ড্রয়েড ব্লুটুথ হেলথ ডিভাইস প্রোফাইল (এইচডিপি) সমর্থন করে। ব্লুটুথ হেলথ এপিআই-তে BluetoothHealth , BluetoothHealthCallback , এবং BluetoothHealthAppConfiguration ক্লাসগুলি অন্তর্ভুক্ত রয়েছে, যেগুলি কী ক্লাস এবং ইন্টারফেসে বর্ণিত হয়েছে৷

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

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

একটি HDP অ্যাপ তৈরি করুন

এখানে একটি এইচডিপি অ্যাপ তৈরিতে জড়িত প্রাথমিক পদক্ষেপগুলি রয়েছে:

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

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

  3. একটি স্বাস্থ্য ডিভাইসের সাথে একটি সংযোগ স্থাপন করুন।

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

  5. হয়ে গেলে, স্বাস্থ্য চ্যানেল বন্ধ করুন এবং অ্যাপটি আনরেজিস্টার করুন। বর্ধিত নিষ্ক্রিয়তা থাকলে চ্যানেলটিও বন্ধ হয়ে যায়।