2010-09-28 7 views
26

यह पता लगाने की प्रक्रिया क्या है कि किसी एंड्रॉइड डिवाइस में एसएमएस भेजने की क्षमता है या नहीं? मैं चाहता हूं कि मेरे ऐप को यह पता चले कि डिवाइस को वास्तव में भेजने की कोशिश करने से पहले एक एसएमएस संदेश भेजने की क्षमता है या नहीं। धन्यवाद।यह पता लगाने की प्रक्रिया क्या है कि किसी एंड्रॉइड डिवाइस में एसएमएस भेजने की क्षमता है या नहीं?

उत्तर

41
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) { 
    // THIS PHONE HAS SMS FUNCTIONALITY 
} else { 
    // NO SMS HERE :(
} 

यह एपीआई स्तर 5 और उसके बाद के संस्करण के लिए काम करना चाहिए।

+3

एफवाईआई, डिफ़ॉल्ट रूप से यह एवीडी एमुलेटर में झूठा रिटर्न देता है, भले ही एम्यूलेटर आपको टेलनेट पर एसएमएस संदेशों में भेजने की अनुमति देता है: 1) टेलनेट लोकलहोस्ट 5554, 2) एसएमएस भेजें <टेक्स्ट संदेश> –

+2

यह शायद असफल हो जाएगा किसी भी गैर-टेलीफोन-सक्षम डिवाइस (जैसे टैबलेट) के लिए जिसमें Google Voice इंस्टॉल है। –

+1

@rnstewart दूसरा यह है कि: यदि Google Voice, Skype या किसी अन्य इंटरनेट सेवा के माध्यम से एसएमएस भेजना संभव है, तो यह विधि विफल हो जाएगी। यह विधि केवल तभी जांचती है जब आप टेलीफ़ोनी नेटवर्क के माध्यम से सीधे एसएमएस भेज सकते हैं। ध्यान दें कि यदि आप 'smsto:' मंशा शुरू करते हैं, तो स्काइप उपयोगकर्ता को एक एसएमएस सेवा के रूप में सूचीबद्ध किया जाएगा। – sulai

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

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