diff options
| author | 2020-01-17 22:11:53 +0000 | |
|---|---|---|
| committer | 2020-01-17 22:11:53 +0000 | |
| commit | 086de218b98c38c690ecf895d8b6b99dcae078fe (patch) | |
| tree | 8d021281a13109ed8d070de036ebab65270db952 | |
| parent | 3b6b6ed367d889900f82870b0c76c5138d36ebca (diff) | |
| parent | 66afc8fab29a8105f32ca5c8579317adb135cd2b (diff) | |
Merge "Let sms app pass a logging id to telephony"
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rwxr-xr-x | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | telephony/java/android/telephony/SmsManager.java | 75 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ISms.aidl | 10 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ISmsImplBase.java | 6 |
6 files changed, 74 insertions, 23 deletions
diff --git a/api/current.txt b/api/current.txt index 73e329080f7f..0da121819b2a 100644 --- a/api/current.txt +++ b/api/current.txt @@ -46148,7 +46148,9 @@ package android.telephony { method public void sendDataMessage(String, String, short, byte[], android.app.PendingIntent, android.app.PendingIntent); method @Deprecated public void sendMultimediaMessage(android.content.Context, android.net.Uri, String, android.os.Bundle, android.app.PendingIntent); method public void sendMultipartTextMessage(String, String, java.util.ArrayList<java.lang.String>, java.util.ArrayList<android.app.PendingIntent>, java.util.ArrayList<android.app.PendingIntent>); + method public void sendMultipartTextMessage(@NonNull String, @Nullable String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, long); method public void sendTextMessage(String, String, String, android.app.PendingIntent, android.app.PendingIntent); + method public void sendTextMessage(@NonNull String, @Nullable String, @NonNull String, @Nullable android.app.PendingIntent, @Nullable android.app.PendingIntent, long); method @RequiresPermission(allOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.SEND_SMS}) public void sendTextMessageWithoutPersisting(String, String, String, android.app.PendingIntent, android.app.PendingIntent); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSmscAddress(@NonNull String); field public static final String EXTRA_MMS_DATA = "android.telephony.extra.MMS_DATA"; diff --git a/api/system-current.txt b/api/system-current.txt index 894914bab249..2ebd5a210ebd 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -10575,7 +10575,7 @@ package android.telephony { 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 getPremiumSmsConsent(@NonNull String); 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 public void sendMultipartTextMessage(@NonNull String, @Nullable 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 @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>); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPremiumSmsConsent(@NonNull String, int); field public static final int PREMIUM_SMS_CONSENT_ALWAYS_ALLOW = 3; // 0x3 diff --git a/api/test-current.txt b/api/test-current.txt index db294332731d..c8bfa469d114 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -3276,7 +3276,7 @@ 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 public void sendMultipartTextMessage(@NonNull String, @Nullable String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull 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 f351163bfe02..2f95a501ce2f 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -424,7 +424,26 @@ 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, 0L /* messageId */); + } + + + /** + * Send a text based SMS. Same as {@link #sendTextMessage( String destinationAddress, + * String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)}, but + * adds an optional messageId. + * @param messageId An id that uniquely identifies the message requested to be sent. + * Used for logging and diagnostics purposes. The id may be 0. + * + * @throws IllegalArgumentException if destinationAddress or text are empty + * + */ + public void sendTextMessage( + @NonNull String destinationAddress, @Nullable String scAddress, @NonNull String text, + @Nullable PendingIntent sentIntent, @Nullable PendingIntent deliveryIntent, + long messageId) { + sendTextMessageInternal(destinationAddress, scAddress, text, sentIntent, deliveryIntent, + true /* persistMessage*/, null, messageId); } /** @@ -542,7 +561,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, long messageId) { if (TextUtils.isEmpty(destinationAddress)) { throw new IllegalArgumentException("Invalid destinationAddress"); } @@ -569,10 +588,10 @@ public final class SmsManager { try { iSms.sendTextForSubscriber(subId, packageName, destinationAddress, scAddress, text, sentIntent, deliveryIntent, - persistMessage); + persistMessage, messageId); } catch (RemoteException e) { Log.e(TAG, "sendTextMessageInternal: Couldn't send SMS, exception - " - + e.getMessage()); + + e.getMessage() + " id: " + messageId); notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION); } } @@ -589,10 +608,10 @@ public final class SmsManager { try { iSms.sendTextForSubscriber(getSubscriptionId(), packageName, destinationAddress, scAddress, text, sentIntent, deliveryIntent, - persistMessage); + persistMessage, messageId); } catch (RemoteException e) { Log.e(TAG, "sendTextMessageInternal (no persist): Couldn't send SMS, exception - " - + e.getMessage()); + + e.getMessage() + " id: " + messageId); notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION); } } @@ -634,7 +653,8 @@ 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, + 0L /* messageId */); } private void sendTextMessageInternal( @@ -921,7 +941,26 @@ 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, + 0L /* messageId */); + } + + /** + * Send a multi-part text based SMS. Same as #sendMultipartTextMessage(String, String, + * ArrayList, ArrayList, ArrayList), but adds an optional messageId. + * @param messageId An id that uniquely identifies the message requested to be sent. + * Used for logging and diagnostics purposes. The id may be 0. + * + * @throws IllegalArgumentException if destinationAddress or data are empty + * + */ + public void sendMultipartTextMessage( + @NonNull String destinationAddress, @Nullable String scAddress, + @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents, + @Nullable List<PendingIntent> deliveryIntents, long messageId) { + sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents, + deliveryIntents, true /* persistMessage*/, null, + messageId); } /** @@ -946,17 +985,17 @@ public final class SmsManager { @SystemApi @TestApi public void sendMultipartTextMessage( - @NonNull String destinationAddress, @NonNull String scAddress, + @NonNull String destinationAddress, @Nullable String scAddress, @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents, @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName) { sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents, - deliveryIntents, true /* persistMessage*/, packageName); + deliveryIntents, true /* persistMessage*/, packageName, 0L /* messageId */); } private void sendMultipartTextMessageInternal( String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents, - boolean persistMessage, String packageName) { + boolean persistMessage, String packageName, long messageId) { if (TextUtils.isEmpty(destinationAddress)) { throw new IllegalArgumentException("Invalid destinationAddress"); } @@ -983,10 +1022,11 @@ public final class SmsManager { ISms iSms = getISmsServiceOrThrow(); iSms.sendMultipartTextForSubscriber(subId, packageName, destinationAddress, scAddress, parts, sentIntents, - deliveryIntents, persistMessage); + deliveryIntents, persistMessage, messageId); } catch (RemoteException e) { Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - " - + e.getMessage()); + + e.getMessage() + " id: " + + messageId); notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION); } } @@ -1003,11 +1043,11 @@ public final class SmsManager { if (iSms != null) { iSms.sendMultipartTextForSubscriber(getSubscriptionId(), packageName, destinationAddress, scAddress, parts, sentIntents, deliveryIntents, - persistMessage); + persistMessage, messageId); } } catch (RemoteException e) { Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - " - + e.getMessage()); + + e.getMessage() + " id: " + messageId); notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION); } } @@ -1021,7 +1061,7 @@ public final class SmsManager { deliveryIntent = deliveryIntents.get(0); } sendTextMessageInternal(destinationAddress, scAddress, parts.get(0), - sentIntent, deliveryIntent, true, packageName); + sentIntent, deliveryIntent, true, packageName, messageId); } } @@ -1051,7 +1091,8 @@ 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, + 0L /* messageId */); } /** diff --git a/telephony/java/com/android/internal/telephony/ISms.aidl b/telephony/java/com/android/internal/telephony/ISms.aidl index c07a1711b32e..79cdce8cba46 100644 --- a/telephony/java/com/android/internal/telephony/ISms.aidl +++ b/telephony/java/com/android/internal/telephony/ISms.aidl @@ -145,10 +145,13 @@ interface ISms { * be automatically persisted in the SMS db. It only affects messages sent * by a non-default SMS app. Currently only the carrier app can set this * parameter to false to skip auto message persistence. + * @param messageId An id that uniquely identifies the message requested to be sent. + * Used for logging and diagnostics purposes. The id may be 0. */ void sendTextForSubscriber(in int subId, String callingPkg, in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent, - in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp); + in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp, + in long messageId); /** * Send an SMS. Internal use only. @@ -270,11 +273,14 @@ interface ISms { * be automatically persisted in the SMS db. It only affects messages sent * by a non-default SMS app. Currently only the carrier app can set this * parameter to false to skip auto message persistence. + * @param messageId An id that uniquely identifies the message requested to be sent. + * Used for logging and diagnostics purposes. The id may be 0. */ void sendMultipartTextForSubscriber(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 List<PendingIntent> deliveryIntents, in boolean persistMessageForNonDefaultSmsApp, + in long messageId); /** * Send a multi-part text based SMS with options using Subscription Id. diff --git a/telephony/java/com/android/internal/telephony/ISmsImplBase.java b/telephony/java/com/android/internal/telephony/ISmsImplBase.java index ddd3457b3b4d..db0b8e528c87 100644 --- a/telephony/java/com/android/internal/telephony/ISmsImplBase.java +++ b/telephony/java/com/android/internal/telephony/ISmsImplBase.java @@ -61,7 +61,8 @@ public class ISmsImplBase extends ISms.Stub { @Override public void sendTextForSubscriber(int subId, String callingPkg, String destAddr, String scAddr, String text, PendingIntent sentIntent, - PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp) { + PendingIntent deliveryIntent, boolean persistMessageForNonDefaultSmsApp, + long messageId) { throw new UnsupportedOperationException(); } @@ -90,7 +91,8 @@ public class ISmsImplBase extends ISms.Stub { public void sendMultipartTextForSubscriber(int subId, String callingPkg, String destinationAddress, String scAddress, List<String> parts, List<PendingIntent> sentIntents, - List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp) { + List<PendingIntent> deliveryIntents, boolean persistMessageForNonDefaultSmsApp, + long messageId) { throw new UnsupportedOperationException(); } |