端末間のデータのやり取りにSMS(ショートメール)を使用しようと考えています。
まだ限定配布のみでGoogle Playにアップする予定はありませんが、調べていると以下の問題点が見つかりました。
| 操作 | 要件 |
|---|
| アプリのマニフェストで通話履歴に関する権限グループ(READ_CALL_LOG、WRITE_CALL_LOG、PROCESS_OUTGOING_CALLS など)をリクエストする場合 | ユーザーの端末で、アプリがデフォルトの電話ハンドラまたはアシスタント ハンドラとして能動的に登録されている必要があります。 |
| アプリのマニフェストで SMS に関する権限グループ(READ_SMS、SEND_SMS、WRITE_SMS、RECEIVE_SMS、RECEIVE_WAP_PUSH、RECEIVE_MMS)をリクエストする場合 | ユーザーの端末で、アプリがデフォルトの SMS ハンドラまたはアシスタント ハンドラとして能動的に登録されている必要があります。 |
上記の通り、必ずしも利用できるものではないということがわかります。
デフォルトのハンドラまたはアシスタントハンドラとして能動的に登録
の意味がよくわかりませんが、 SMSを使用することが目的のアプリに限定するというようにも読み取れます(要確認)
以前までの場合、以下の対応で利用できていました
- マニフェストにuses-permissionとしてSEND_SMS、RECEIVE_SMS、READ_SMSを記載
またAndroid 6.0(APIレベル23)からユーザによる明示的な許可が必要になりました。
これについては、requestPermissions()メソッドで許可ダイアログを表示させることができるので、多少面倒ではありますが対応は可能です。
SMSをユーザーが任意のテキストメッセージを送信する以外の目的に利用することは特別な認可を受けない限り難しいのですかね。
もう少し調べますが、何か情報があれば共有いただければ幸いです。