অ্যান্ড্রয়েড 4.3 ব্লুটুথ লো এনার্জি অস্থির


189

আমি বর্তমানে একটি অ্যাপ্লিকেশন বিকাশ করছি যা ব্লুটুথ লো এনার্জি ব্যবহার করবে (নেক্সাস 4 এ পরীক্ষা করা)। অ্যান্ড্রয়েড ৪.৩-তে অফিশিয়ালি বিএলআই এপিআইগুলি শুরু করার পরে, আমি লক্ষ্য করেছি যে আমি প্রথমবার কোনও ডিভাইস সংযুক্ত করার পরে আমি খুব কমই আবার সেই ডিভাইস বা অন্য কোনও ডিভাইসের সাথে সফলভাবে সংযোগ / যোগাযোগ করতে সক্ষম হয়েছি।

এখানে গাইড অনুসরণ করে , আমি কোনও ডিভাইসে সফলভাবে সংযোগ করতে পারি, পরিষেবাগুলি এবং বৈশিষ্ট্যগুলি স্ক্যান করতে পারি এবং কোনও সমস্যা ছাড়াই বিজ্ঞপ্তিগুলি পড়তে / লিখতে / গ্রহণ করতে পারি। তবে সংযোগ বিচ্ছিন্ন করে ও পুনরায় সংযোগ দেওয়ার পরে, আমি প্রায়শই পরিষেবা / বৈশিষ্ট্যগুলি স্ক্যান করতে অক্ষম বা পড়তে / লিখতে সম্পূর্ণ অক্ষম। কেন ঘটছে তা নির্দেশ করার জন্য লগগুলিতে আমি কিছুই খুঁজে পাচ্ছি না।

এটি হয়ে গেলে আমাকে অ্যাপ্লিকেশনটি আনইনস্টল করতে হবে, ব্লুটুথ অক্ষম করতে হবে এবং ফোনটি আবার কাজ শুরু করার আগে ফোনটি পুনরায় চালু করতে হবে।

যখনই কোনও ডিভাইস সংযোগ বিচ্ছিন্ন হয়ে গেছে তখন আমি ব্লুটুথগ্যাট অবজেক্টে ক্লোজ () কল করতে এবং এটিকে নালায় সেট করতে নিশ্চিত করি। কোন অন্তর্দৃষ্টি?


সম্পাদনা করুন:
লগ ডাম্প: এই লগগুলির জন্য আমি আমার ফোনটি মূলী করেছিলাম এবং /etc/bluetuth/bt_stack.conf- এ সম্পর্কিত আইটেমগুলির ট্রেস স্তরের উপরে আছি

সফল সংযোগ - ফোনটি রিবুট করার পরে অ্যাপটি ইনস্টল করার পরে প্রথম প্রচেষ্টা। আমি সংযোগ করতে সক্ষম, সমস্ত পরিষেবা / বৈশিষ্ট্য আবিষ্কার করতে এবং পড়তে / লিখতে সক্ষম।

ব্যর্থ চেষ্টা 1 - উপরের সফল সংযোগটি সংযোগ বিচ্ছিন্ন করার পরে এটি পরবর্তী প্রচেষ্টা। দেখে মনে হচ্ছে আমি বৈশিষ্ট্যগুলি আবিষ্কার করতে সক্ষম হয়েছি, তবে পড়ার প্রথম প্রয়াসটি একটি শূন্যমূল্য ফিরে পেয়েছিল এবং এর পরেই সংযোগ বিচ্ছিন্ন হয়ে যায়।

ব্যর্থ চেষ্টা 2 - এমন একটি উদাহরণ যেখানে আমি পরিষেবা / বৈশিষ্ট্যগুলি আবিষ্কার করতেও সক্ষম নই।


সম্পাদনা 2:
আমি যে ডিভাইসে সংযোগ দেওয়ার চেষ্টা করছি সেটি টিআই এর সিসি 2541 চিপের উপর ভিত্তি করে। আমি চারপাশে খেলতে টিআই সেন্সরটাগ ( সিসি 2541 এর উপর ভিত্তি করে) পেয়েছি এবং আবিষ্কার করেছি যে টিআই গতকাল সেন্সরটাগের জন্য একটি অ্যান্ড্রয়েড অ্যাপ প্রকাশ করেছে। তবে এই অ্যাপটিতে একই সমস্যা রয়েছে। আমি এটি একই ফলাফলের সাথে অন্য দুটি নেক্সাস 4 এস-তে পরীক্ষা করেছি: সেন্সরটাগের সাথে সংযোগটি প্রথম বা দ্বিতীয় বার সফল, তবে (লগ অনুসারে) এর পরে পরিষেবাগুলি আবিষ্কার করতে ব্যর্থ হয়, যার ফলে সমস্ত ধরণের ক্র্যাশ ঘটে। আমি ভাবতে শুরু করছি যে এটি যদি এই নির্দিষ্ট চিপের কোনও সমস্যা হয়?


আপনি সমস্যার মুখোমুখি হওয়া পর্যন্ত বুট-আপ থেকে আপনার ফোনের সম্পূর্ণ লগগুলি পোস্ট করুন।
আনকিট

3
আমি ফাঁস গুগল সংস্করণ Android 4.3 ইনস্টল সহ স্যামসং গ্যালাক্সি এস 4 ব্যবহার করছি; সংযোগ / সংযোগ বিচ্ছিন্ন করার অনেক সময় পরে, যখন আমি পরিষেবাগুলি আবিষ্কার করি আমি এলোমেলোভাবে 129 (GATT_INTERNAL_ERROR) পেয়ে যাব এবং 133 (GATT_ERROR), রাষ্ট্র = ব্লুটুথপ্রোফিল.ডি.আই.সি।
reTs

1
একবার বা দু'বারের জন্য অল্প সময়ের মধ্যে আমি একাধিক স্ট্যাটাস পেয়েছি 129 এবং 133 কলব্যাক এবং আমি আমার ডিভাইসটি রিবুট না করা পর্যন্ত ব্লুটুথগ্যাটক্যালব্যাকে কোনও কলব্যাক পাইনি (তবে স্ক্যানিং ঠিক আছে)।
reTs

1
এটি ভুলে যান যে আমি টিআই চিপস ব্যবহার করে প্রায় দশটি ডিভাইস (দুঃখিত আমি তাদের মডেলগুলি জানি না) এবং নর্ডিক চিপস সহ একটি ডিভাইস পরীক্ষা করছি। নর্ডিক
চিপযুক্ত

1
আমি নিশ্চিত করতে পারি যে এই সমস্যাটি এখনও স্যামসং গ্যালাক্সি এস 5 ( G900VVRU2BOG5 এবং G900VVRU2BOA8 বিল্ড সংস্করণ) উভয়তেই রয়েছে । আমি যদি সেটিংস> অ্যাপ্লিকেশন ম্যানেজার >> সমস্ত >> ব্লুটুথ থেকে ডেটা সাফ করি তবে এটি কিছু সময়ের জন্য কাজ করে।
আয়রনব্লসম

উত্তর:


184

গুরুত্বপূর্ণ বাস্তবায়ন ইঙ্গিত

(অ্যান্ড্রয়েড ওএস আপডেটের কারণে সম্ভবত সেগুলির কয়েকটি ইঙ্গিতের দরকার নেই))

  1. অ্যান্ড্রয়েড 4.3 সহ নেক্সাস 4 এর মতো কিছু ডিভাইস বিদ্যমান গ্যাট ইনস্ট্যান্স ব্যবহার করে সংযোগ করতে 45+ সেকেন্ড সময় নেয় । চারপাশে কাজ করুন: সর্বদা সংযোগ বিচ্ছিন্ন করার জন্য গেটের দৃষ্টান্তগুলি বন্ধ করুন এবং প্রতিটি সংযোগে গেটের একটি নতুন ঘটনা তৈরি করুন।
  2. কল করতে ভুলবেন না android.bluetooth.BluetoothGatt#close()
  3. ভিতরে একটি নতুন থ্রেড শুরু করুন onLeScan(..) এবং তারপরে সংযুক্ত করুন। কারণ: BluetoothDevice#connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback)সর্বদা ব্যর্থ হয়, যদি LeScanCallback() {...}.onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)অ্যান্ড্রয়েড 4.3 সহ স্যামসং গ্যালাক্সি এস 3-তে একই থ্রেডের ভিতরে কল করা হয় (কমপক্ষে JSS15J.I9300XXUGMK6 নির্মাণের জন্য)
  4. বেশিরভাগ ডিভাইস বিজ্ঞাপন ফিল্টার করে
  5. android.bluetooth.BluetoothAdapter#startLeScan(UUID[] serviceUuids, LeScanCallback callback) নির্দিষ্ট পরিষেবা ইউআইডি'র জন্য ফিল্টার করার জন্য প্যারামিটারটি ব্যবহার না করা ভাল কারণ এটি অ্যান্ড্রয়েড 4.3 সহ স্যামসাং গ্যালাক্সি এস 3 এ সম্পূর্ণরূপে নষ্ট হয়ে গেছে এবং সাধারণভাবে 128 বিট ইউআইডিগুলিতে কাজ করে না
  6. গ্যাট সর্বদা একটি সময়ে একটি কমান্ড প্রক্রিয়া করতে পারে । যদি একের পর এক বেশ কয়েকটি কমান্ড সংক্ষিপ্তভাবে ডাকা হয় , তবে প্রথমটিটি গ্যাট বাস্তবায়নের সিঙ্ক্রোনাস প্রকৃতির কারণে বাতিল হয়ে যায়।
  7. আমি প্রায়শই অ্যান্ড্রয়েড 5 এর সাথে আধুনিক ডিভাইসেও দেখতে পাই যে ওয়াইফাই ব্লুটুথ এবং এর বিপরীতে হস্তক্ষেপ করে। শেষ অবলম্বন হিসাবে, ব্লুটুথ স্থিতিশীল করতে ওয়াইফাই বন্ধ করুন।

নতুনদের জন্য টিউটোরিয়াল

নতুনদের জন্য একটি দুর্দান্ত ঠিক প্রবেশের পয়েন্টটি এই ভিডিও টিউটোরিয়াল হতে পারে: অ্যান্ড্রয়েডের জন্য ব্লুটুথ স্মার্ট অ্যাপ্লিকেশন বিকাশ করা http://youtu.be/x1y4tEHDwk0

নীচে বর্ণিত সমস্যা এবং কাজটি সম্ভবত ওএস আপডেট দ্বারা এখন ঠিক করা হয়েছে

প্রায় কাজ: আমি আমার অ্যাপ্লিকেশনটি "স্থিতিশীল" করতে পারছিলাম ...

  1. আমি ব্যবহারকারীকে একটি "রিস্টার্ট ব্লুটুথ" সেটিংস সরবরাহ করি। যদি সেটিংটি সক্ষম থাকে, তবে আমি ব্লুটুথ পুনরায় চালু করব এমন কিছু পয়েন্টে যা বিএলই স্ট্যাকটি অস্থির হয়ে উঠার সূচনা করে। উদাহরণস্বরূপ, যদি স্টার্টস্ক্যানটি মিথ্যা ফেরত দেয়। সার্ভিস ডিসকোভারি ব্যর্থ হলে একটি ভাল বিষয়ও হতে পারে। আমি কেবল ব্লুটুথ চালু এবং চালু করেছি।
  2. আমি অন্য সেটিং সরবরাহ করি "ওয়াইফাই বন্ধ করুন"। যদি সেটিংটি সক্ষম করা থাকে, অ্যাপটি চলমান থাকাকালীন আমার অ্যাপ্লিকেশনটি ওয়াইফাইটি বন্ধ করে দেয় (এবং পরে এটি আবার ফিরিয়ে দেয়)

এই কাজটি প্রায়শই অভিজ্ঞতার উপর ভিত্তি করে ...

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

33
গুগল, আপনি এখন এটি ঠিক করতে হবে। এই কাজটি চারপাশে (আমি এটি প্লাস করেছি কারণ এটি কাজ করে) হাস্যকর।
ক্রিস হারবার্ট

4
কখনও কখনও, পরিষেবা আবিষ্কার একটি স্ট্যাটাস 0 দিয়ে সাফল্য লাভ করে (কোনও সমস্যা মনে করে), তবুও বৈশিষ্ট্যযুক্ত পাঠগুলি নুল মান অর্জন করবে কারণ এটি মূলত সংযুক্ত নয় বা বৈশিষ্ট্যগুলি আবিষ্কার করা হয়নি (আমি লগতে এই দেখি: 11-01 18:37: 32.131: WARN / ব্লুটুথগ্যাট (20119): আনহানডেল ব্যতিক্রম: java.lang. নালপয়েন্টার এক্সসেপশন)
লো-ট্যান

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

2
আমার অভিজ্ঞতাটি হ'ল: উপরের অনুচ্ছেদ 2 তে বর্ণিত গ্যাট ক্লায়েন্ট বন্ধ করার পরে স্যামসুং এস 3 (4.3) সফলভাবে পুনরায় সংযুক্ত হয়েছে; Nexus 4 & 7 ব্যবহার করে (4.4.2)
বিএনএল

1
যে কেউ নিশ্চিত করে android.bluetooth.BluetoothGatt শুধুমাত্র একটি মুলতুবী গ্যাট অপারেশন সব ব্যবস্থা করতে সক্ষম করতে পারেন প্রতিটি ডিভাইস , প্রতি প্রক্রিয়া , বা সময়কাল (অর্থাৎ, সকল প্রক্রিয়ার জুড়ে)। আমি অনুমান করি যে এটি পিয়ার ডিভাইস, তবে এই সমস্যাটি এতটাই প্রসারিত হয়েছে যে এটি অন্যথায় না থাকলে আমার অবাক করে দেবে না। যদি সীমাবদ্ধতা কেবলমাত্র পিয়ার ডিভাইস হয় তবে একযোগে একাধিক অপারেশন পরিচালনা করতে সক্ষম ওএস / ডিভাইসটি ধূমপানের বন্দুকের প্রমাণ হ'ল ব্লুটুথএডাপ্টারের উদাহরণে কিছুটা দুর্বল বাস্তবায়নের ফলে এই সমস্যাটি হ'ল ওএস প্রতিটি প্রক্রিয়া হ্যান্ড (যা আমি ধরে নিয়েছিলাম) সমস্ত প্রক্রিয়া জুড়ে একটি সিঙ্গলটন)।
শুক্রবার

18

ওয়াইফাই অফ করা:

আমি আরও নিশ্চিত করতে পারি যে, ওয়াইফাই অফ করা বাঁকটি ব্লুটুথ ৪.০ বিশেষত গুগল নেক্সাসে আরও স্থিতিশীল করে তোলে (আমার একটি নেক্সাস have রয়েছে)।

সমস্যাটি

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

তবুও আমি বুঝতে পেরেছি যে ক্রমাগত ব্লুটুথ এলই স্ক্যানিং আসলে ওয়াইফাই সংযোগটি মেরে ফেলতে পারে এবং বিএলই স্ক্যান চালু না হওয়া পর্যন্ত ওয়াইফাই অ্যাডাপ্টারের কোনও ওয়াইফাই নেটওয়ার্কের সাথে পুনরায় সংযোগ করতে অক্ষম করে তোলে । (আমি মোবাইল নেটওয়ার্ক এবং মোবাইল ইন্টারনেট সম্পর্কে নিশ্চিত নই)।
নিম্নলিখিত ডিভাইসগুলিতে এটি অবশ্যই ঘটেছে:

  • নেক্সাস 7
  • মোটরোলা মোটো জি

তবে WIFI- এর সাথে বিএলই স্ক্যান করা বেশ স্থিতিশীল বলে মনে হয়েছিল:

  • স্যামসাং এস 4
  • হফটশ

আমার কাজ

আমি ৪-৪ সেকেন্ডের স্বল্প সময়ের জন্য বিএলই স্ক্যান করি তারপরে আমি ২-৩ সেকেন্ডের জন্য স্ক্যান বন্ধ করে দেব । তারপরে আবার

  • আমি যখন কোনও BLE ডিভাইসে সংযোগ করছি তখন অবশ্যই আমি সর্বদা BLE স্ক্যান বন্ধ করে দেব।
  • আমি যখন কোনও ডিভাইস থেকে সংযোগ বিচ্ছিন্ন করি তখন আবার স্ক্যান শুরু করার আগে স্ট্যাকটি পুনরায় সেট করতে আমি BLE পুনরায় চালু (অ্যাডাপ্টারটি চালু এবং তারপরে চালু) করি।
  • আবিষ্কার servicesবা characteristicsব্যর্থ হলে আমি BLE পুনরায় সেট করি ।
  • আমি যখন এমন কোনও ডিভাইস থেকে বিজ্ঞাপনের ডেটা পাই যা অ্যাপ্লিকেশনটির সাথে সংযুক্ত হওয়া উচিত (সংযোগ করতে সক্ষম না হয়ে 500 বার বলতে দাও - এটি বিজ্ঞাপনের প্রায় 5-10 সেকেন্ডের জন্য হয়) আমি আবার বিএলইকে পুনরায় সেট করি।

আপনি বলেছিলেন যে কোনও ডিভাইস সংযোগ বিচ্ছিন্ন হওয়ার পরে আমি BLE পুনরায় চালু করব। মনে করুন, ব্যবহারকারী যদি ব্লুটুথ সংযোগের মাধ্যমে ফাইলটি স্থানান্তর করে থাকেন। তারপরে, আপনি যে কোনও সময় ব্লুটুথ স্থানান্তর ব্যর্থ হতে হবে।
রাহুল রাস্তোগি

1
"অ্যাডাপ্টারটি অফ করুন এবং তারপরে চালু" বলতে কী বোঝ?
মারিয়ান পাডজিওচ

আমি সম্মত হই, ওয়াইফাই এবং ব্লুটুথ একসাথে মটো জি
তে

@ মারিয়ানপ্যাডজিওচ, "টার্ন অ্যাডাপ্টার অফ এবং তারপরে চালু" দ্বারা @ বেনকা মানে ব্লুটুথএডাপ্টার
অনুপ

9

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

আমি এই উত্তরটি কয়েকদিনের মধ্যে আপডেট করব যখন আমি পরিষেবা আবিষ্কার এবং গ্যাট পরীক্ষা করি এবং পুনরায় বুট না করে অনুরোধগুলি পড়ি এবং লিখি।

সম্পাদনা: দেখা যাচ্ছে যে আমি একটি উন্নয়ন ফার্মওয়্যার সংস্করণ (আমাদের সেন্সর) যা পরীক্ষা করা হয়নি যা জোড় না থাকলে সমস্যা সৃষ্টি করে not আমাদের সর্বশেষ প্রযোজনা ফার্মওয়্যার বিল্ড 2540 এবং 2541 এর দশকে দুর্দান্ত কাজ করে।

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

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


আমি কোনও ধরণের ম্যানুয়াল জুড়ি বা রিবুট ছাড়াই ধারাবাহিকভাবে একটি সিসি 2541 ডিভাইসে সংযোগ করছি এবং পুনরায় সংযোগ করছি।
dgel

আমার মতে, এখানে কোন জুড়ি প্রয়োজন নেই। সরকারী দস্তাবেজগুলিও জুটি বাঁধার মন্তব্য করে না। আমি কোনও জুড়ি না দিয়ে লেখার, পড়ার, চরিত্রগত পরিবর্তিত বিজ্ঞপ্তিও সম্পাদন করতে পারি। তবে, কেবল অল্প সময়ের জন্য। এখন এটি আবার নড়বড়ে ... স্যামসং ব্লু এসকেডি ভি 2.0-তেও জুটি বাঁধার দরকার নেই এবং বেশ ভাল কাজ করেছেন।
ওয়ানওয়ার্ল্ড

3
আমি নিশ্চিত করতে পারি, ওয়াইফাই বন্ধ করার পরে এটি আরও স্থিতিশীল। প্রত্যেকেরই সেই চেষ্টা করা উচিত।
ওয়ানওয়ার্ল্ড

1
জোড়া লাগানো দরকার কিনা তা ডিভাইস বাস্তবায়নের উপর নির্ভরশীল। nrf8002 ডিভাইসগুলির জন্য জোড়া লাগানো দরকার এবং স্যামসুং 2.0 এবং 1.2 এপিআই এর উভয়ই এটি সমর্থন করে। দেখে মনে হচ্ছে অফিসিয়াল এপি সাপোর্টে জুটি বাঁধার দিক দিয়ে সমস্যা হচ্ছে যেমন আমি একটি ব্লাড ডিভাইসটি জোড়া দিয়েছি, এটি জোড় করা অসম্ভব বলে মনে হচ্ছে!
ক্রিস হার্বার্ট

2
সঙ্গম করতে না পারার জন্য আমার চারপাশে কাজ আছে। 1) আপনার বিটি মেনুতে যান, সংযোজন নির্বাচন করুন, অঞ্চল থেকে রক্তের ডিভাইসটি সরিয়ে ফেলুন বা এটি ডিপোভার করুন, বিটি মেনুতে ব্লাড ডিভাইসটি নির্বাচন করুন এবং এটি জোড়া লাগাতে এবং ব্যর্থ হওয়ার চেষ্টা করবে, তারপরে ব্লুটুথ পুনরায় সেট করুন। পুনরায় সেট করার পরে ডিভাইসটি অকেজো করা হবে।
ক্রিস হারবার্ট

7

কিছু মডেলগুলিতে একটি ত্রুটি রয়েছে: https://code.google.com/p/android/issues/detail?id=180440

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

btGatt.disconnect();
btGatt.close();

কেন closeপ্রয়োজনীয়?
ইগোরগানাপলস্কি

3
আপনি একাধিকবার ব্লুটুথ সংযোগ করতে চাইলে সঠিক সমাপ্তির পদ্ধতিটি কী। আমার অভিজ্ঞতায় এটি সবচেয়ে ভাল কাজ করে যদি আপনি একটি পৃথক ইউএনবাউন্ড পরিষেবাতে আপনার ব্লি কানেকশনটি চালান তবে আপনি এটি হাত দিয়ে শুরু করতে এবং থামাতে পারেন। এবং যে আপনি mConnectedGatt.discon সংযুক্ত কল (); ble_device = নাল; আপনার inDestroy () এ। আমার ক্ষেত্রে এই প্যাটার্নটি কোনও সমস্যা ছাড়াই স্থিতিশীল কাজ করে।
মেডটেক 24'18

4

আমি একই রকম সমস্যার মুখোমুখি হয়েছি। আমার ফিক্স ছিল

if (Build.VERSION.SDK_INT >= 23) {
  mBluetoothGatt = device.connectGatt(this, false, mGattCallback, BluetoothDevice.TRANSPORT_LE);
} else {
  mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
}

এবং সংযোগ বিচ্ছিন্ন করার পরে বন্ধ কল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.