Loading api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -10206,9 +10206,15 @@ package android.telephony { method public boolean disableCellBroadcastRange(int, int, int); 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 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 @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 field public static final int PREMIUM_SMS_CONSENT_ASK_USER = 1; // 0x1 field public static final int PREMIUM_SMS_CONSENT_NEVER_ALLOW = 2; // 0x2 field public static final int PREMIUM_SMS_CONSENT_UNKNOWN = 0; // 0x0 } public class SubscriptionInfo implements android.os.Parcelable { telephony/java/android/telephony/SmsManager.java +85 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,42 @@ public final class SmsManager { */ public static final int SMS_MESSAGE_PERIOD_NOT_SPECIFIED = -1; /** @hide */ @IntDef(prefix = { "PREMIUM_SMS_CONSENT" }, value = { SmsManager.PREMIUM_SMS_CONSENT_UNKNOWN, SmsManager.PREMIUM_SMS_CONSENT_ASK_USER, SmsManager.PREMIUM_SMS_CONSENT_NEVER_ALLOW, SmsManager.PREMIUM_SMS_CONSENT_ALWAYS_ALLOW }) @Retention(RetentionPolicy.SOURCE) public @interface PremiumSmsConsent {} /** Premium SMS Consent for the package is unknown. This indicates that the user * has not set a permission for this package, because this package has never tried * to send a premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_UNKNOWN = 0; /** Default premium SMS Consent (ask user for each premium SMS sent). * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_ASK_USER = 1; /** Premium SMS Consent when the owner has denied the app from sending premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_NEVER_ALLOW = 2; /** Premium SMS Consent when the owner has allowed the app to send premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_ALWAYS_ALLOW = 3; // result of asking the user for a subscription to perform an operation. private interface SubscriptionResolverResult { void onSuccess(int subId); Loading Loading @@ -2869,4 +2905,53 @@ public final class SmsManager { } return false; } /** * Gets the premium SMS permission for the specified package. If the package has never * been seen before, the default {@link SmsManager#PREMIUM_SMS_PERMISSION_ASK_USER} * will be returned. * @param packageName the name of the package to query permission * @return one of {@link SmsManager#PREMIUM_SMS_CONSENT_UNKNOWN}, * {@link SmsManager#PREMIUM_SMS_CONSENT_ASK_USER}, * {@link SmsManager#PREMIUM_SMS_CONSENT_NEVER_ALLOW}, or * {@link SmsManager#PREMIUM_SMS_CONSENT_ALWAYS_ALLOW} * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public @PremiumSmsConsent int getPremiumSmsConsent(@NonNull String packageName) { int permission = 0; try { ISms iSms = getISmsService(); if (iSms != null) { permission = iSms.getPremiumSmsPermission(packageName); } } catch (RemoteException e) { Log.e(TAG, "getPremiumSmsPermission() RemoteException", e); } return permission; } /** * Sets the premium SMS permission for the specified package and save the value asynchronously * to persistent storage. * @param packageName the name of the package to set permission * @param permission one of {@link SmsManager#PREMIUM_SMS_CONSENT_ASK_USER}, * {@link SmsManager#PREMIUM_SMS_CONSENT_NEVER_ALLOW}, or * {@link SmsManager#PREMIUM_SMS_CONSENT_ALWAYS_ALLOW} * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPremiumSmsConsent( @NonNull String packageName, @PremiumSmsConsent int permission) { try { ISms iSms = getISmsService(); if (iSms != null) { iSms.setPremiumSmsPermission(packageName, permission); } } catch (RemoteException e) { Log.e(TAG, "setPremiumSmsPermission() RemoteException", e); } } } Loading
api/system-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -10206,9 +10206,15 @@ package android.telephony { method public boolean disableCellBroadcastRange(int, int, int); 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 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 @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 field public static final int PREMIUM_SMS_CONSENT_ASK_USER = 1; // 0x1 field public static final int PREMIUM_SMS_CONSENT_NEVER_ALLOW = 2; // 0x2 field public static final int PREMIUM_SMS_CONSENT_UNKNOWN = 0; // 0x0 } public class SubscriptionInfo implements android.os.Parcelable {
telephony/java/android/telephony/SmsManager.java +85 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,42 @@ public final class SmsManager { */ public static final int SMS_MESSAGE_PERIOD_NOT_SPECIFIED = -1; /** @hide */ @IntDef(prefix = { "PREMIUM_SMS_CONSENT" }, value = { SmsManager.PREMIUM_SMS_CONSENT_UNKNOWN, SmsManager.PREMIUM_SMS_CONSENT_ASK_USER, SmsManager.PREMIUM_SMS_CONSENT_NEVER_ALLOW, SmsManager.PREMIUM_SMS_CONSENT_ALWAYS_ALLOW }) @Retention(RetentionPolicy.SOURCE) public @interface PremiumSmsConsent {} /** Premium SMS Consent for the package is unknown. This indicates that the user * has not set a permission for this package, because this package has never tried * to send a premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_UNKNOWN = 0; /** Default premium SMS Consent (ask user for each premium SMS sent). * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_ASK_USER = 1; /** Premium SMS Consent when the owner has denied the app from sending premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_NEVER_ALLOW = 2; /** Premium SMS Consent when the owner has allowed the app to send premium SMS. * @hide */ @SystemApi public static final int PREMIUM_SMS_CONSENT_ALWAYS_ALLOW = 3; // result of asking the user for a subscription to perform an operation. private interface SubscriptionResolverResult { void onSuccess(int subId); Loading Loading @@ -2869,4 +2905,53 @@ public final class SmsManager { } return false; } /** * Gets the premium SMS permission for the specified package. If the package has never * been seen before, the default {@link SmsManager#PREMIUM_SMS_PERMISSION_ASK_USER} * will be returned. * @param packageName the name of the package to query permission * @return one of {@link SmsManager#PREMIUM_SMS_CONSENT_UNKNOWN}, * {@link SmsManager#PREMIUM_SMS_CONSENT_ASK_USER}, * {@link SmsManager#PREMIUM_SMS_CONSENT_NEVER_ALLOW}, or * {@link SmsManager#PREMIUM_SMS_CONSENT_ALWAYS_ALLOW} * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public @PremiumSmsConsent int getPremiumSmsConsent(@NonNull String packageName) { int permission = 0; try { ISms iSms = getISmsService(); if (iSms != null) { permission = iSms.getPremiumSmsPermission(packageName); } } catch (RemoteException e) { Log.e(TAG, "getPremiumSmsPermission() RemoteException", e); } return permission; } /** * Sets the premium SMS permission for the specified package and save the value asynchronously * to persistent storage. * @param packageName the name of the package to set permission * @param permission one of {@link SmsManager#PREMIUM_SMS_CONSENT_ASK_USER}, * {@link SmsManager#PREMIUM_SMS_CONSENT_NEVER_ALLOW}, or * {@link SmsManager#PREMIUM_SMS_CONSENT_ALWAYS_ALLOW} * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPremiumSmsConsent( @NonNull String packageName, @PremiumSmsConsent int permission) { try { ISms iSms = getISmsService(); if (iSms != null) { iSms.setPremiumSmsPermission(packageName, permission); } } catch (RemoteException e) { Log.e(TAG, "setPremiumSmsPermission() RemoteException", e); } } }