diff options
| author | 2020-03-21 05:18:24 +0000 | |
|---|---|---|
| committer | 2020-03-21 05:18:24 +0000 | |
| commit | 2a9c3e49baae9572f563f18f0bb2a85bafc26a05 (patch) | |
| tree | a1d79e77031bfa999a133f09bae96c2a25cdc82d | |
| parent | 905d2c24ccd3acc460a27d958340be4c3aa85b02 (diff) | |
| parent | b36bcc882a14ee10f90f530c0ff3bf6074d4835f (diff) | |
Merge "Pipe through attributeTag for one SMS permission check"
| -rwxr-xr-x | api/system-current.txt | 3 | ||||
| -rw-r--r-- | api/test-current.txt | 3 | ||||
| -rw-r--r-- | telephony/java/android/telephony/SmsManager.java | 57 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ISms.aidl | 31 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ISmsImplBase.java | 21 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ITelephony.aidl | 3 |
6 files changed, 71 insertions, 47 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index aea1f61804ed..be7d8e0acdcb 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -9100,7 +9100,8 @@ package android.telephony { method public boolean enableCellBroadcastRange(int, int, int); method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_MESSAGES_ON_ICC) public java.util.List<android.telephony.SmsMessage> getMessagesFromIcc(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSmsCapacityOnIcc(); - method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String); + method @Deprecated public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String); + method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String, @Nullable String); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void sendMultipartTextMessageWithoutPersisting(String, String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>); } diff --git a/api/test-current.txt b/api/test-current.txt index f4a02fab227d..e96630858f5c 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -3227,7 +3227,8 @@ package android.telephony { public final class SmsManager { method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int checkSmsShortCodeDestination(String, String); - method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String); + method @Deprecated public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String); + method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String, @Nullable String); field public static final int SMS_CATEGORY_FREE_SHORT_CODE = 1; // 0x1 field public static final int SMS_CATEGORY_NOT_SHORT_CODE = 0; // 0x0 field public static final int SMS_CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE = 3; // 0x3 diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index b6d07aec61bb..0f52ba7935ab 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -389,7 +389,7 @@ public final class SmsManager { String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) { sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent, - true /* persistMessage*/, null); + true /* persistMessage*/, null, null); } /** @@ -507,7 +507,7 @@ public final class SmsManager { private void sendTextMessageInternal(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, - boolean persistMessage, String packageName) { + boolean persistMessage, String packageName, String attributionTag) { if (TextUtils.isEmpty(destinationAddress)) { throw new IllegalArgumentException("Invalid destinationAddress"); } @@ -532,7 +532,7 @@ public final class SmsManager { public void onSuccess(int subId) { ISms iSms = getISmsServiceOrThrow(); try { - iSms.sendTextForSubscriber(subId, packageName, + iSms.sendTextForSubscriber(subId, packageName, attributionTag, destinationAddress, scAddress, text, sentIntent, deliveryIntent, persistMessage); } catch (RemoteException e) { @@ -552,7 +552,7 @@ public final class SmsManager { // visible to the user. ISms iSms = getISmsServiceOrThrow(); try { - iSms.sendTextForSubscriber(getSubscriptionId(), packageName, + iSms.sendTextForSubscriber(getSubscriptionId(), packageName, attributionTag, destinationAddress, scAddress, text, sentIntent, deliveryIntent, persistMessage); } catch (RemoteException e) { @@ -599,7 +599,7 @@ public final class SmsManager { String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) { sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent, - false /* persistMessage */, null); + false /* persistMessage */, null, null); } private void sendTextMessageInternal( @@ -882,7 +882,24 @@ public final class SmsManager { String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) { sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents, - deliveryIntents, true /* persistMessage*/, null); + deliveryIntents, true /* persistMessage*/, null, null); + } + + /** + * @deprecated Use {@link #sendMultipartTextMessage(String, String, List, List, List, String, + * String)} instead. + * + * @hide + */ + @Deprecated + @SystemApi + @TestApi + public void sendMultipartTextMessage( + @NonNull String destinationAddress, @NonNull String scAddress, + @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents, + @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName) { + sendMultipartTextMessage(destinationAddress, scAddress, parts, sentIntents, deliveryIntents, + packageName, null); } /** @@ -909,15 +926,16 @@ public final class SmsManager { public void sendMultipartTextMessage( @NonNull String destinationAddress, @NonNull String scAddress, @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents, - @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName) { + @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName, + @Nullable String attributionTag) { sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents, - deliveryIntents, true /* persistMessage*/, packageName); + deliveryIntents, true /* persistMessage*/, packageName, attributionTag); } private void sendMultipartTextMessageInternal( String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents, - boolean persistMessage, String packageName) { + boolean persistMessage, String packageName, String attributionTag) { if (TextUtils.isEmpty(destinationAddress)) { throw new IllegalArgumentException("Invalid destinationAddress"); } @@ -942,7 +960,7 @@ public final class SmsManager { public void onSuccess(int subId) { try { ISms iSms = getISmsServiceOrThrow(); - iSms.sendMultipartTextForSubscriber(subId, packageName, + iSms.sendMultipartTextForSubscriber(subId, packageName, attributionTag, destinationAddress, scAddress, parts, sentIntents, deliveryIntents, persistMessage); } catch (RemoteException e) { @@ -963,8 +981,8 @@ public final class SmsManager { ISms iSms = getISmsServiceOrThrow(); if (iSms != null) { iSms.sendMultipartTextForSubscriber(getSubscriptionId(), packageName, - destinationAddress, scAddress, parts, sentIntents, deliveryIntents, - persistMessage); + attributionTag, destinationAddress, scAddress, parts, sentIntents, + deliveryIntents, persistMessage); } } catch (RemoteException e) { Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - " @@ -982,7 +1000,7 @@ public final class SmsManager { deliveryIntent = deliveryIntents.get(0); } sendTextMessageInternal(destinationAddress, scAddress, parts.get(0), - sentIntent, deliveryIntent, true, packageName); + sentIntent, deliveryIntent, true, packageName, attributionTag); } } @@ -1012,7 +1030,7 @@ public final class SmsManager { String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents) { sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents, - deliveryIntents, false /* persistMessage*/, null); + deliveryIntents, false /* persistMessage*/, null, null); } /** @@ -1174,7 +1192,7 @@ public final class SmsManager { ISms iSms = getISmsServiceOrThrow(); if (iSms != null) { iSms.sendMultipartTextForSubscriberWithOptions(subId, - null, destinationAddress, + null, null, destinationAddress, scAddress, parts, sentIntents, deliveryIntents, persistMessage, finalPriority, expectMore, finalValidity); } @@ -1196,7 +1214,7 @@ public final class SmsManager { ISms iSms = getISmsServiceOrThrow(); if (iSms != null) { iSms.sendMultipartTextForSubscriberWithOptions(getSubscriptionId(), - null, destinationAddress, + null, null, destinationAddress, scAddress, parts, sentIntents, deliveryIntents, persistMessage, finalPriority, expectMore, finalValidity); } @@ -1327,9 +1345,8 @@ public final class SmsManager { public void onSuccess(int subId) { try { ISms iSms = getISmsServiceOrThrow(); - iSms.sendDataForSubscriber(subId, null, - destinationAddress, scAddress, destinationPort & 0xFFFF, data, - sentIntent, deliveryIntent); + iSms.sendDataForSubscriber(subId, null, null, destinationAddress, scAddress, + destinationPort & 0xFFFF, data, sentIntent, deliveryIntent); } catch (RemoteException e) { Log.e(TAG, "sendDataMessage: Couldn't send SMS - Exception: " + e.getMessage()); notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION); @@ -1481,7 +1498,7 @@ public final class SmsManager { // it here because we do not have access to the activity context that is performing this // operation. // Requires that the calling process has the SEND_SMS permission. - getITelephony().enqueueSmsPickResult(null, + getITelephony().enqueueSmsPickResult(null, null, new IIntegerConsumer.Stub() { @Override public void accept(int subId) { diff --git a/telephony/java/com/android/internal/telephony/ISms.aidl b/telephony/java/com/android/internal/telephony/ISms.aidl index 7002aa1d1706..88da3c94748b 100644 --- a/telephony/java/com/android/internal/telephony/ISms.aidl +++ b/telephony/java/com/android/internal/telephony/ISms.aidl @@ -86,9 +86,9 @@ interface ISms { * raw pdu of the status report is in the extended data ("pdu"). * @param subId the subId id. */ - void sendDataForSubscriber(int subId, String callingPkg, in String destAddr, - in String scAddr, in int destPort, in byte[] data, in PendingIntent sentIntent, - in PendingIntent deliveryIntent); + void sendDataForSubscriber(int subId, String callingPkg, String callingattributionTag, + in String destAddr, in String scAddr, in int destPort,in byte[] data, + in PendingIntent sentIntent, in PendingIntent deliveryIntent); /** * Send an SMS. @@ -118,8 +118,8 @@ interface ISms { * by a non-default SMS app. Currently only the carrier app can set this * parameter to false to skip auto message persistence. */ - void sendTextForSubscriber(in int subId, String callingPkg, in String destAddr, - in String scAddr, in String text, in PendingIntent sentIntent, + void sendTextForSubscriber(in int subId, String callingPkg, String callingAttributionTag, + in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent, in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp); /** @@ -217,7 +217,7 @@ interface ISms { * parameter to false to skip auto message persistence. */ void sendMultipartTextForSubscriber(in int subId, String callingPkg, - in String destinationAddress, in String scAddress, + String callingAttributionTag, in String destinationAddress, in String scAddress, in List<String> parts, in List<PendingIntent> sentIntents, in List<PendingIntent> deliveryIntents, in boolean persistMessageForNonDefaultSmsApp); @@ -266,10 +266,10 @@ interface ISms { * Any Other values included Negative considered as Invalid Validity Period of the message. */ void sendMultipartTextForSubscriberWithOptions(in int subId, String callingPkg, - in String destinationAddress, in String scAddress, in List<String> parts, - in List<PendingIntent> sentIntents, in List<PendingIntent> deliveryIntents, - in boolean persistMessageForNonDefaultSmsApp, in int priority, in boolean expectMore, - in int validityPeriod); + String callingAttributionTag, in String destinationAddress, in String scAddress, + in List<String> parts, in List<PendingIntent> sentIntents, + in List<PendingIntent> deliveryIntents, in boolean persistMessageForNonDefaultSmsApp, + in int priority, in boolean expectMore, in int validityPeriod); /** * Enable reception of cell broadcast (SMS-CB) messages with the given @@ -427,6 +427,7 @@ interface ISms { * * @param subId the SIM id. * @param callingPkg the package name of the calling app + * @param callingAttributionTag the attribution tag of calling context * @param messageUri the URI of the stored message * @param scAddress is the service center address or null to use the current default SMSC * @param sentIntent if not NULL this <code>PendingIntent</code> is @@ -446,8 +447,9 @@ interface ISms { * broadcast when the message is delivered to the recipient. The * raw pdu of the status report is in the extended data ("pdu"). */ - void sendStoredText(int subId, String callingPkg, in Uri messageUri, String scAddress, - in PendingIntent sentIntent, in PendingIntent deliveryIntent); + void sendStoredText(int subId, String callingPkg, String callingAttributionTag, + in Uri messageUri, String scAddress, in PendingIntent sentIntent, + in PendingIntent deliveryIntent); /** * Send a system stored multi-part text message. @@ -459,6 +461,7 @@ interface ISms { * * @param subId the SIM id. * @param callingPkg the package name of the calling app + * @param callingAttributeTag the attribute tag of the calling context * @param messageUri the URI of the stored message * @param scAddress is the service center address or null to use * the current default SMSC @@ -482,8 +485,8 @@ interface ISms { * to the recipient. The raw pdu of the status report is in the * extended data ("pdu"). */ - void sendStoredMultipartText(int subId, String callingPkg, in Uri messageUri, - String scAddress, in List<PendingIntent> sentIntents, + void sendStoredMultipartText(int subId, String callingPkg, String callingAttributeTag, + in Uri messageUri, String scAddress, in List<PendingIntent> sentIntents, in List<PendingIntent> deliveryIntents); /** diff --git a/telephony/java/com/android/internal/telephony/ISmsImplBase.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java index 53ae9258609c..51af6de78627 100644 --- a/telephony/java/com/android/internal/telephony/ISmsImplBase.java +++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java @@ -45,15 +45,15 @@ public class ISmsImplBase extends ISms.Stub { } @Override - public void sendDataForSubscriber(int subId, String callingPkg, String destAddr, - String scAddr, int destPort, byte[] data, PendingIntent sentIntent, + public void sendDataForSubscriber(int subId, String callingPkg, String callingAttributionTag, + String destAddr, String scAddr, int destPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) { throw new UnsupportedOperationException(); } @Override - public void sendTextForSubscriber(int subId, String callingPkg, String destAddr, - String scAddr, String text, PendingIntent sentIntent, + public void sendTextForSubscriber(int subId, String callingPkg, String callingAttributionTag, + String destAddr, String scAddr, String text, PendingIntent sentIntent, PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp) { throw new UnsupportedOperationException(); } @@ -75,7 +75,7 @@ public class ISmsImplBase extends ISms.Stub { @Override public void sendMultipartTextForSubscriber(int subId, String callingPkg, - String destinationAddress, String scAddress, + String callingAttributionTag, String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp) { throw new UnsupportedOperationException(); @@ -83,7 +83,7 @@ public class ISmsImplBase extends ISms.Stub { @Override public void sendMultipartTextForSubscriberWithOptions(int subId, String callingPkg, - String destinationAddress, String scAddress, + String callingAttributionTag, String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp, int priority, boolean expectMore, int validityPeriod) { @@ -160,14 +160,15 @@ public class ISmsImplBase extends ISms.Stub { } @Override - public void sendStoredText(int subId, String callingPkg, Uri messageUri, String scAddress, - PendingIntent sentIntent, PendingIntent deliveryIntent) { + public void sendStoredText(int subId, String callingPkg, String callingAttributionTag, + Uri messageUri, String scAddress, PendingIntent sentIntent, + PendingIntent deliveryIntent) { throw new UnsupportedOperationException(); } @Override - public void sendStoredMultipartText(int subId, String callingPkg, Uri messageUri, - String scAddress, List<PendingIntent> sentIntents, + public void sendStoredMultipartText(int subId, String callingPkg, String callingAttributionTag, + Uri messageUri, String scAddress, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents) { throw new UnsupportedOperationException(); } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 794ad9238574..1face6c4f4cd 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -2204,7 +2204,8 @@ interface ITelephony { * Enqueue a pending sms Consumer, which will answer with the user specified selection for an * outgoing SmsManager operation. */ - oneway void enqueueSmsPickResult(String callingPackage, IIntegerConsumer subIdResult); + oneway void enqueueSmsPickResult(String callingPackage, String callingAttributeTag, + IIntegerConsumer subIdResult); /** * Returns the MMS user agent. |