2012-07-03 10 views
5

के साथ ब्लूटूथ ऑडियो डिवाइस को नियंत्रित करें मैं आईफोन के लिए एप्लिकेशन लिखना चाहता हूं जो कार में रेडियो और सीडी प्लेयर को नियंत्रित करने में सक्षम होगा। रेडियो और प्लेयर में ब्लूटूथ कनेक्शन उपलब्ध है।आईफोन

मैंने इस प्रश्न को एक ही स्थान के लिए आवश्यक सभी सूचनाएं प्राप्त करने के लिए शुरू किया। मेरे पास कुछ प्रश्न हैं, लेकिन अगर आपको कुछ मिल जाए तो मैंने इस एप्लिकेशन को विकसित करना शुरू करने के लिए मेरे लिए महत्वपूर्ण नहीं पूछा, कृपया मुझे बताएं।

मैंने एवीआरसीपी प्रोफाइल के बारे में पढ़ा है और कार में ब्लूटूथ डिवाइस एवीआरसीपी 1.3 का समर्थन करता है, जो मेरे लिए काफी अच्छा है, जो उस प्रोटोकॉल संस्करण में दिमाग नियंत्रण में किया जा सकता है।

मैंने लोगों के बारे में बहुत कुछ पढ़ा है, "ऐप्पल डिवाइस केवल एक दूसरे के साथ बातचीत कर सकता है", "ऐप्पल डिवाइस को ब्लूटूथ के माध्यम से गैर-ऐप्पल डिवाइस से कनेक्ट नहीं किया जा सकता", "यदि आप ऐसा करना चाहते हैं तो एमएफआई प्रोग्राम अनिवार्य है "," एमएफआई की आवश्यकता नहीं है ", आदि। मेरा पहला सवाल है:

1) क्या ब्लूटूथ और रेडियो स्टेशनों और संगीत को नियंत्रित करने के माध्यम से कार में रेडियो और सीडी प्लेयर के साथ आईफोन (4, 4 एस) को जोड़ना भी संभव है किसी भी आईफोन संस्करण के साथ? यदि हां, इस तरह के सफल ब्लूटूथ कनेक्शन बनाने के लिए सीमाएं क्या हैं?

भूमिकाओं के बारे में बहुत कम जानकारी भी है जिसमें आईफोन काम कर सकता है। एवीआरसीपी के लिए दो तरह की भूमिकाएं हैं: नियंत्रक और लक्ष्य भूमिका। इस पत्र को पढ़ने के द्वारा: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf मैं नहीं जवाब मेरे दूसरे प्रश्न के लिए मिला:

2) एक नियंत्रक के रूप कर सकते हैं iPhone अधिनियम और डिवाइस (रेडियो और सीडी प्लेयर को लक्षित करने के AVRCP 1.3 में कहा गया है सभी उपलब्ध आदेश जारी)?

मैं इस विशेष समस्या के लिए उपलब्ध ढांचे के बारे में भी जानना चाहूंगा। मुझे पता है कि उनमें से कई हैं, लेकिन अगर कोई मेरी समस्या के लिए सही पहचानता है, तो मैं जानना चाहता हूं:

3) लक्ष्य डिवाइस के साथ बातचीत करने के लिए कौन सा ढांचा उपयोग करना चाहिए?

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

4) क्या कोई जानता है कि एक्सकोड में प्रदान की गई कुछ एपीआई के हिस्से के रूप में डिवाइस को लक्षित करने के लिए आदेश (प्रारंभ/रोक/रोक/आगे/पिछड़ा, आदि) भेजने के लिए कोई तरीका है या नहीं, प्रत्येक संदेश जो मैं डिवाइस को लक्षित करने के लिए ब्लूटूथ के माध्यम से भेजने के लिए भाग लेता हूं मुझे प्रोटोकॉल प्रलेखन के अनुसार बनाना होगा (पूरे संदेश (हेडर, बॉडी, कमांड पार्ट, इत्यादि) स्वयं को बनाना)?

एवीआरसीपी इस एप्लिकेशन को पूरा करने के लिए मेरा विचार था। अगर मैं गलत हूं, तो कृपया मुझे बताएं। ब्लूटूथ में अलग-अलग प्रोफाइल हैं और जब तक एक डिवाइस से संदेश भेजा जाता है, जहां तक ​​मैं समझता हूं, प्रोफाइल स्वयं संदेश को संभालता है और इसका अर्थ देता है और डिवाइस को लक्षित करने के लिए वितरित करता है ताकि लक्ष्य डिवाइस इसे समझ सके। मुझे समझ में नहीं आता कि आईफोन से ब्लूटूथ डिवाइस को लक्षित करने के लिए भेजा गया संदेश उस समय से संभाला जाता है जब मैं इसे अपने उद्देश्य-सी (या सी) कोड से भेजता हूं। मेरे पास यह मुख्य संदेह है और यह प्रश्न 4 से संबंधित है - क्या मुझे डिवाइस पर AVRCP कमांड भेजने के लिए सही प्रारूप में कच्चे संदेश बनाने की आवश्यकता है या मैं कुछ एपीआई का उपयोग कर सकता हूं जो उन संदेशों को एवीआरसीपी (या कोई भी अन्य प्रकार) और इसे डिवाइस पर लक्षित करने के लिए वितरित करें?

यह अंतिम प्रश्न (यदि मुझे लगता है कि पिछले सभी के लिए कोई सकारात्मक जवाब है) तो मुझे डेवलपर दृष्टिकोण से सबसे ज्यादा चिंता है। इसलिए, अगर किसी को इस विशिष्ट समस्या का अनुभव हो सकता है, तो मैं किसी भी प्रकार के उत्तर या सलाह की सराहना करता हूं।

मैं वास्तव में आपके उत्तरों की प्रतीक्षा कर रहा हूं। मुझे उम्मीद है कि रचनात्मक और उपयोगी चर्चा इस विषय पर शुरू होगी और बहुत सारी उपयोगी सूचनाएं लिखी जाएंगी।

सर्वश्रेष्ठ संबंध।

+0

# 1: @javieralog - एमएफआई और बीटी 4.0 ली उपकरणों के बारे में सामान स्पष्ट करने के लिए धन्यवाद। – uerceg

उत्तर

5

आप इसे CoreBluetooth का उपयोग कर यदि आपके डिवाइस (सीडी प्लेयर) ब्लूटूथ 4.0 LE संगत

+0

त्वरित उत्तर के लिए धन्यवाद। मैंने पढ़ा है कि केवल आईफोन 4 एस ब्लूटूथ 4.0 ली अनुपालन डिवाइस और पिछले संस्करणों का समर्थन नहीं करता है। क्या यह सच है? और एक और सवाल: यदि कोई डिवाइस ब्लूटूथ 4.0 ली अनुरूप नहीं है, तो क्या आप कह रहे हैं कि किसी भी आईफोन संस्करण के साथ इसे नियंत्रित करने के लिए यह असंभव है? अग्रिम में धन्यवाद। आईफोन भाग के लिए – uerceg

+0

सच है। सुनिश्चित नहीं है कि आईपैड के लिए सच है; मुझे लगता है कि नया आईपैड बीई मोड – javieralog

+0

के साथ बीटी 4.0 है, क्या आप कह रहे हैं कि किसी भी आईफोन संस्करण के साथ इसे नियंत्रित करने के लिए यह असंभव है? हाँ एमएफआई प्रोग्राम – javieralog

0

सबसे अधिक संभावना आप भले ही अपनी कार सीडी प्लेयर BLE 4.0 है यह ऐसा करने में सक्षम नहीं होगा है कर सकते हैं।

कोर ब्लूटूथ डिवाइस "सेंट्रल" (क्लाइंट) या "पेरिफेरल" (सर्वर) के रूप में कार्य करते हैं, परिधीय "डेटा है" और विशेषताओं (चर) के साथ सेवाओं का पर्दाफाश करते हैं। केंद्रीय (ग्राहक) परिधीय से डेटा पढ़ता है या अधिसूचनाओं के लिए सदस्यता लेता है।

आपका एकमात्र मौका सीडी प्लेयर से परिधीय (सर्वर) और आपके आईफोन को केंद्रीय (क्लाइंट) के रूप में कनेक्ट करना है। इस मामले में सीडी प्लेयर को उन सेवाओं का पर्दाफाश करना चाहिए जो आपको इसे नियंत्रित करने की अनुमति देते हैं। ईमानदार होने के लिए मुझे नहीं पता कि यह कैसे किया जा सकता है, क्योंकि केंद्रीय (आईफोन) डेटा पढ़ेगा और परिधीय से अधिसूचनाएं प्राप्त करेगा, इसके विपरीत नहीं।

आईफोन को परिधीय के रूप में लागू करने के लिए भूमिकाओं को उलटना, लेकिन रिमोट कंट्रोल के लिए कोई पूर्वनिर्धारित ब्लूटूथ ली सेवा नहीं है, इसलिए आपकी कार सीडी प्लेयर नहीं जानता कि आपको कौन सी सेवा की उम्मीद है। यह एचआईडी सेवा (मानव इंटरफ़ेस डिवाइस) का उपयोग करके काम कर सकता है, जो कीबोर्ड और माउस के लिए सामान्य रूप से उपयोग किया जाता है, लेकिन इस post के अनुसार आईओएस पर ऐप्पल द्वारा छुपाया गया है।