2010-11-02 12 views
8

के समतुल्य 1.6 मैं आउटगोइंग कॉल को संभालने के लिए गेटवे लागू करना चाहता हूं।एंड्रॉइड 1.6 EXTRA_GATEWAY_URI

नवीनतम Android संस्करण 2.x मैं छिपा ACTION_CALL अतिरिक्त तार के साथ आसानी से कर सकते हैं: "com.android.phone.extra.GATEWAY_URI"

लेकिन पिछले संस्करणों में, 1.6 की तरह, मैं डॉन यह नहीं पता कि यह कैसे करें। यह संभव होना चाहिए क्योंकि Google Voice इसे कर रहा है। क्या कोई मेरी सहायता कर सकता है?

धन्यवाद, एम्मानुएल

+0

असल में मैं एक फोन नंबर कॉल करने में सक्षम होना चाहता हूं, लेकिन एक है उपयोगकर्ता के लिए अलग संख्या प्रदर्शित की जानी चाहिए। उदाहरण के लिए कॉलिंग कार्ड अनुप्रयोगों के लिए यह उपयोगी होगा। – Emmanuel

+0

यह उत्तर देने के लिए मुझे क्या करना है? – Emmanuel

+0

मूल कोड कहीं भी सोर्स नहीं किया गया है। आप कार्यान्वयन को स्कैन कर सकते हैं और आवश्यक कोड कॉपी कर सकते हैं। – CodingBarfield

उत्तर

2

अरे इम्मानुएल, उपकरणों की 76% पहले से ही Android 2.x शायद उस प्रयास बर्बाद हो जाता है चलाते हैं। जिंजरब्रेड साल के अंत तक बाहर आने की उम्मीद है, जो 1.6 उपकरणों के प्रतिशत को आगे बढ़ाएगा। आधा साल से भी कम एंड्रॉइड 2.x और उच्चतर 80% अंक से अधिक होगा। बस प्लेटफ़ॉर्म संस्करण वितरण http://d.android.com/resources/dashboard/platform-versions.html देखें। हो सकता है कि एंड्रॉइड ओपन सोर्स प्रोजेक्ट में सोर्स कोड पर नज़र डालें।

मुझे InCallScreen.java में वर्णित स्ट्रिंग मिली। शायद यह आपको पुराने स्रोत कोड में खोदने का एक तरीका देता है ताकि यह पता लगाने की कोशिश की जा सके कि क्या आप इसे कुछ अनियंत्रित एपीआई के माध्यम से एक्सेस कर सकते हैं। लेकिन मेरा सुझाव उन 1.6 उपकरणों के पिछले 25% से परेशान नहीं होगा जो वे तेजी से गायब हो जाएंगे।

[अपडेट] चूंकि यह यह काम करने के लिए एक आवश्यकता है, मैं तुम्हें Git भंडार से फोन अनुप्रयोग पुनः संकलित करें और इस तरह से debugable यह आप देख सकते हैं पर वास्तव में क्या हो रहा है सुझाव है। शायद एएसओपी डिवाइस 1.6 चल रहा है, यह एंड्रॉइड ऐसा करने में गहराई से ड्रिल करने के लिए आपकी सबसे अच्छी शर्त होगी। असल में आपको 2.x वापस 1.6 में इस सुविधा में शामिल सभी कोड को पोर्ट करना होगा। एक समय से बाजार परिप्रेक्ष्य में मैं सुझाव देता हूं कि ऐप को 2.x समर्थन के साथ प्राप्त करें और 1.6 के लिए बनाए गए दूसरे संस्करण को रिलीज़ करें। 1.6 की वजह से रिहाई में देरी एक बुरा व्यापार विचार प्रतीत होता है।

+0

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

+0

अभी मेरा जवाब अपडेट किया गया। एक नज़र देख लो। – AGrunewald

+0

मुझे यकीन है कि मैं समझता हूं। आप चाहते हैं कि मैं Google Voice चलाने के दौरान फ़ोन ऐप डीबग करना चाहता हूं? मुझे यकीन नहीं है कि यह कैसे करें ... सबसे पहले मुझे एमुलेटर पर Google Voice इंस्टॉल करना होगा - कोई विचार नहीं कि यह कैसे करें। कनाडा में दूसरी Google Voice उपलब्ध नहीं है। मुझे धोखा देना होगा। – Emmanuel

0

GATEWAY_URI का उपयोग करने वाला कोड निश्चित रूप से एक्लेयर में जोड़ा गया था। , AOSP में देख रहे हैं में संकुल/apps/फोन/src/com/एंड्रॉयड/फोन/InCallScreen.java, कोड की कि बिट डोनट में पूरी तरह से inexistant है:

// If a provider is used, extract the info to build the 
    // overlay and route the call. The overlay will be 
    // displayed the first time updateScreen is called. 
    if (PhoneUtils.hasPhoneProviderExtras(intent)) { 
     mProviderLabel = PhoneUtils.getProviderLabel(this, intent); 
     mProviderIcon = PhoneUtils.getProviderIcon(this, intent); 
     mProviderGatewayUri = PhoneUtils.getProviderGatewayUri(intent); 
     mProviderAddress = PhoneUtils.formatProviderUri(mProviderGatewayUri); 
     mProviderOverlayVisible = true; 

     if (TextUtils.isEmpty(mProviderLabel) || null == mProviderIcon || 
      null == mProviderGatewayUri || TextUtils.isEmpty(mProviderAddress)) { 
      clearProvider(); 
     } 
    } else { 
     clearProvider(); 
    } 

मैं किसी भी विकल्प नहीं देख सकता। डोनट से उस फोन एप्लिकेशन को लेने के लिए शायद आपको शुभकामनाएं मिलें, आपको जो चाहिए उसे जोड़ें और इसे डोनट डिवाइस पर एक नए फोन एप्लिकेशन के रूप में रिलीज़ करें ...

+0

मैं स्रोत कोड में भी देख रहा था और मैंने नोटिस किया कि एपीआई 1.6 और पिछले में गायब था। लेकिन चूंकि Google Voice ऐसा कर सकता है, इसलिए कुछ अन्य एपीआई होना चाहिए जिन्हें मैं समान परिणामों का उत्पादन करने के लिए उपयोग कर सकता हूं। मैंने अतिरिक्त देखा लेकिन कुछ भी नहीं मिला। मुझे यह अजीब लगता है कि ACTION_CALL के लिए फ़ोन नंबर EXTRA_PHONE_NUMBER और इरादे के यूआरआई में निर्दिष्ट है लेकिन केवल इरादा यूआरआई संख्या मायने रखती है। जो कुछ भी मैंने EXTRA_PHONE_NUMBER में रखा है उसे अनदेखा किया जाता है। या हो सकता है कि Google Voice कॉल करने के लिए कोई गुप्त कार्रवाई हो? – Emmanuel

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