Android SMSメッセージの受信
ぃやぁ、やっとうまくSMS受信メッセージに反応するBroadcastReceiverを作成できました。
ググりまくって、サンプル試しまくってもBroadcastReceiverがSMS_RECIVEDに反応しなかった諸兄は、以下を試すと幸せになれるかもしれません。
テストアプリにSMSの権限を付けましょう
ということで、デバッグしたのであれば、Visual StudioなどのIDEが、デバイス(エミュレータ―)にテストするアプリを配置してくれてるはずです。
設定>アプリ>テスト対象のアプリの順にタップしていくと、次の画面にたどり着きます
赤枠の権限をタップします。と、次の画面になるでしょう・・・
そこにあるSMSのチェックを入れましょう。これでいけるとおもいます。デバッグ中でもおkですよ。
なぜにそうするのか?
それは、Android6以降の仕様によります。Android6以降のアクセス許可は、安全なアクセス許可と危険なアクセス許可の2種類に分けられ、SMSのアクセス許可が危険なアクセス許可になったからです。
危険なアクセス許可は、マニフェストに実行許可を付けただけでダメで、アプリを実行するユーザーが直々に設定する必要があるのです。それが上図の手順というわけです。
ググりまくった成功例のサンプルには、その話が載っていませんでした。多分、その記事を書いた時期がAndroid6より前だったのでしょう。
テストアプリを世にだそうとする場合は、上図手順ではなく、下記リンクをしっかり読んで、アクセス許可について理解し、APIを駆使して作る必要がありますね。
んじゃ、僕のほうはやりたいことの5割ができたので、さらなる改良を加えていくことにしますよ。BroadcastReceiverが反応してくれたんで、色々をごにょごにょしちゃいますーーー