次のような登録情報のために電話番号にアクセスする Android 電話アプリがあります。
String thisPhoneNumber = "0";
try {
TelephonyManager tMgr=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
thisPhoneNumber = tMgr.getLine1Number(); }
catch (Exception e) { }
電話では問題なく動作します。友人がタブレット (最近のもの) で試してみたところ、アプリがクラッシュしました。try/catch の 4 行をコメント アウトすると、正常に動作するため、getSystemService 呼び出しでクラッシュが発生したように見えます。
少しstackoverflowを検索すると、コードはどちらのプラットフォームでも実行できるように思えますが、それは私が見ているものではありません。
try/catch でクラッシュを防ぎ、例外を処理できるようにすべきではありませんか?
タブレットでクラッシュすることなく getSystemService を実行できるようにする他の方法はありますか? それとも、タブレットでその電話をかけなくてもいいですか?