2017-12-07 5 views
1

SIMカードスロットのないタブレットでプログラム的にSMS機能を無効にしたい。デバイスがSMSをサポートしているかどうかを確認するにはどうすればよいですか?

私はこれ試してみました:

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

が、私のNVidiaの盾タブレット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

この場合、を検索するgetSystemService()は必ずnullを返すとは思いません。

電話を確認する公式の方法は、PackageManagerhasSystemFeature(PackageManager.FEATURE_TELEPHONY)と電話することです。電話番号はgetPackageManager()です。

私はNVIDIA Shield K1をほこりに落としましたが、falsehasSystemFeature(PackageManager.FEATURE_TELEPHONY)からそのデバイスに届きました。

関連する問題