2014-09-11 6 views
8

मैं जोड़ा गया Bluetooth डिवाइसों का आकलन कर सकता हूं, और मुझे ऐप स्टार्टअप पर अपने वर्तमान कनेक्शन स्थिति की जांच करनी होगी।Android में ब्लूटूथ डिवाइस की प्रोग्राम स्थिति को प्रोग्रामेटिक रूप से जांचने के लिए कैसे करें?

लेकिन, मुझे कनेक्शन स्थिति प्राप्त करने का कोई तरीका नहीं मिला?

यहाँ कुछ प्रयासों मैं कोशिश की है रहे हैं, लेकिन विफल रहा:

  1. android.bluetooth.BluetoothDevice

यह रिमोट डिवाइस के बंधन राज्य पाने के लिए विधि है, और के लिए संभावित मान बॉन्ड स्टेटस हैं: BOND_NONE, BOND_BONDING, BOND_BONDED। लेकिन यह कनेक्शन राज्य नहीं है।

  1. android.bluetooth.BluetoothProfile

विधि कनेक्शन राज्य पाने के लिए इस्तेमाल किया जा सकता है, लेकिन BluetoothProfile वस्तु पहले प्राप्त किया जाना चाहिए।

public abstract int getConnectionState (BluetoothDevice device); 

के रूप में दस्तावेज़ में वर्णन: "ग्राहकों, (संदर्भ, BluetoothProfile.ServiceListener, पूर्णांक) getProfileProxy फोन प्रोफ़ाइल प्रॉक्सी पाने के लिए चाहिए।", यह केवल एक ServiceListener जब राज्य परिवर्तन कहा जाता में पुनः प्राप्त किया जा सकता है।

क्या होगा अगर मैं किसी भी राज्य परिवर्तन के बिना स्टार्टअप पर राज्य से पूछता हूं?

  1. android.bluetooth.BluetoothManager

यह एक तरीका प्रदान करता है:

public int getConnectionState (BluetoothDevice device, int profile); 

लेकिन यह एक Bluetooth वक्ता के कनेक्शन राज्य का पता लगाने के लिए नहीं किया जा सकता है, चूंकि प्रोफ़ाइल तर्क केवल GATT या GATT_SERVER (कम ऊर्जा डिवाइस के लिए) स्वीकार करता है, अन्य प्रोफाइल (HEADSET, HEALTH, A2DP) समर्थित नहीं हैं।

  1. android.bluetooth.BluetoothAdapter

यह एक तरीका प्रदान करता है:

public int getProfileConnectionState (int profile); 

इस समारोह है कि स्थानीय Bluetooth एडाप्टर जुड़ा हुआ है की जाँच करने के लिए इस्तेमाल किया जा सकता है किसी विशिष्ट प्रोफ़ाइल के लिए किसी भी दूरस्थ डिवाइस पर। इसका उपयोग एक निर्दिष्ट प्रोफाइल की जांच के लिए किया जा सकता है। लेकिन इसका उपयोग किसी दिए गए डिवाइस की जांच के लिए नहीं किया जा सकता है।

क्या किसी को पता है कि किसी दिए गए Bluetooth डिवाइस की कनेक्शन स्थिति कैसे प्राप्त करें?

अग्रिम धन्यवाद।

+0

क्या आपको इसके लिए कोई जवाब मिला? –

+0

दो दिनों के लिए इस पर स्ट्रक की बहुत सराहना की जा सकती है। क्या आपको इसके लिए कोई समाधान मिला। अगर कनेक्ट किया गया है तो मैं ब्लूटूथ गैट कनेक्शन स्थिति को देखना चाहता हूं, फिर भी डिस्कनेक्ट किए गए राज्य तक जाने तक प्रतीक्षा करने की आवश्यकता है, लेकिन मैंने getConnectionState() को अपवाद फेंक दिया। – prasanthMurugan

उत्तर

1

समान प्रश्न How to programmatically tell if a Bluetooth device is connected? (Android 2.2) से जवाब में नोट्स देखें:

  • वहाँ स्टार्टअप पर कनेक्ट किए गए डिवाइस की सूची प्राप्त करने के लिए कोई रास्ता नहीं है। ब्लूटूथ एपीआई आपको QUERY की अनुमति नहीं देता है, इसके बजाय यह आपको परिवर्तन सुनने की अनुमति देता है।
  • उपर्युक्त समस्या के आस-पास एक आकर्षक काम सभी ज्ञात/जोड़े गए उपकरणों की सूची पुनर्प्राप्त करना होगा ... फिर प्रत्येक से कनेक्ट करने का प्रयास करना (यह निर्धारित करने के लिए कि आप कनेक्ट हैं या नहीं)। वैकल्पिक रूप से, आपके पास पृष्ठभूमि सेवा ब्लूटूथ एपीआई देख सकती है और बाद में किसी भी तिथि पर आपके एप्लिकेशन के लिए डिस्क पर डिवाइस स्टेटस लिख सकती है।
संबंधित मुद्दे

 संबंधित मुद्दे