tarotaroのエンジニア生活

技術ネタとか日々の仕事の話とか

なぜか、タブレット対応にしてるのにマーケットでタブレットが除外されてしまう問題を解決

自分のアプリを公開したときに、タブレット対応してるのに、
なぜかマーケットで対応から外れてることにあった場合の対処法。
あなたのアプリでもしかしたら電話かけるプログラム部分がもしかしたら
あるんじゃないでしょうか?そのときにパーミッション
android.permission.CALL_PHONE
を許可させるようにしてないですか?
これをやると電話のできないタブレットがマーケットで除外されてしまいます。
これを回避する方法があります。
android.permission.CALL_PHONEは、電話番号をインテントで渡し、直に
電話をかける場合に使います。
intentの呼び出し部分はつぎの通り
Uri uri = Uri.parse(“tel:0120123456789″);
Intent i = new Intent(Intent.ACTION_CALL,uri);
startActivity(i);
てな具合です。では、直電話をかけない方法とは、
次のintentの呼び出しです。
Uri uri = Uri.parse(“tel:0120123456789″);
Intent i = new Intent(Intent.ACTION_DIAL,uri);
startActivity(i);

このようにすると電話をかける一歩手前でとまり、ユーザー自身も
本当に電話をかけるか選べるようになります。
このようにすることで、
android.permission.CALL_PHONE
は解除でき、電話をかけるのも選べるようになると
2重でいいことづくめです。
なぜ、android.permission.CALL_PHONEがあるのか、ちょっと疑問ですね、
一歩間違うと、いたずらに使えちゃいますから。
このパーミッションを解除することにより、電話ができないタブレットにも
対応にできます。ちなみに、電話ができないタブレットでためすと、
ものによるのでしょうが、
電話帳に登録する画面になったりするようです。