Add single use App specific incoming SMSes

This allows applications to request that an upcoming incoming SMS be
routed directly to the calling application and to do so without
needing the RECEIVE_SMS permission.

This is especially important for ephemeral applications which we do not
want to have the ability to get the RECEIVE_SMS permission but do want
to support SMS based phone number verification. Ephemeral apps can use
this API to receive and SMS from their backend but will not be able to
access other SMSes on the device.

This is done by providing the app a token which when included in a
subsequent SMS message causes the application provided PendingIntent to
be sent with the SMS message data attached.

Test: Verified that an SMS containing the code is routed to the app.
Test: runtest --path GsmInboundHandlerTest.java
Test: cts-tradefed run cts -m CtsPermission2TestCases

Bug: 33047670
Change-Id: Iea60bfd1d3f9b8f013b34a82a480c65006416c4c
4 files changed