2017-12-07 4 views
1

SIM 카드 슬롯이없는 태블릿에서 프로그래밍 방식으로 SMS 기능을 사용하지 않으려합니다. 기기가 SMS를 지원하는지 어떻게 확인할 수 있습니까?

if (context.getSystemService(Context.TELEPHONY_SERVICE) != null) 
{ 
    // Sms features: enable 
} 
else 
{ 
    // Sms features: disable 
} 

하지만 내 엔비디아 쉴드 태블릿 K1에

(SIM 카드 슬롯없이) context.getSystemService(Context.TELEPHONY_SERVICE) 반환 뭔가를 내가 telepnony 서비스를 것 같습니다 :

나는이 시도했다.

내 코드가 잘못되었습니다.

+1

주어진 기능을 사용할 수없는 경우 getSystemService가 null을 반환한다는 약속은 없습니다. 내가 왜 그렇게 생각하는지 확신 할 수 없다. 문서에 아무것도 없다고 말할 것이다. –

+2

[전화가 SMS를 보낼 수 있는지 확인]의 가능한 중복 (https://stackoverflow.com/questions/15924099/check-if-a-phone-can-send-sms) –

답변

2

이 경우 null이 반드시 TelephonyManager 인 것을 검색한다고 가정하지는 않습니다.

전화를 확인하는 공식적인 방법은 PackageManager에서 hasSystemFeature(PackageManager.FEATURE_TELEPHONY)으로 전화하는 것입니다.이 전화는 getPackageManager()으로 전화 할 수 있습니다.

NVIDIA Shield K1에서 먼지를 털어 냈습니다. falsehasSystemFeature(PackageManager.FEATURE_TELEPHONY)에서받을 수 있습니다.