Merge "Add new onSmsStatusReportReceived() without message reference"
This commit is contained in:
@@ -9421,7 +9421,8 @@ package android.telephony.ims.stub {
|
|||||||
method public void onReady();
|
method public void onReady();
|
||||||
method public final void onSendSmsResult(int, int, int, int) throws java.lang.RuntimeException;
|
method public final void onSendSmsResult(int, int, int, int) throws java.lang.RuntimeException;
|
||||||
method public final void onSmsReceived(int, String, byte[]) throws java.lang.RuntimeException;
|
method public final void onSmsReceived(int, String, byte[]) throws java.lang.RuntimeException;
|
||||||
method public final void onSmsStatusReportReceived(int, int, String, byte[]) throws java.lang.RuntimeException;
|
method @Deprecated public final void onSmsStatusReportReceived(int, int, String, byte[]) throws java.lang.RuntimeException;
|
||||||
|
method public final void onSmsStatusReportReceived(int, String, byte[]) throws java.lang.RuntimeException;
|
||||||
method public void sendSms(int, int, String, String, boolean, byte[]);
|
method public void sendSms(int, int, String, String, boolean, byte[]);
|
||||||
field public static final int DELIVER_STATUS_ERROR_GENERIC = 2; // 0x2
|
field public static final int DELIVER_STATUS_ERROR_GENERIC = 2; // 0x2
|
||||||
field public static final int DELIVER_STATUS_ERROR_NO_MEMORY = 3; // 0x3
|
field public static final int DELIVER_STATUS_ERROR_NO_MEMORY = 3; // 0x3
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ package android.telephony.ims.aidl;
|
|||||||
*/
|
*/
|
||||||
oneway interface IImsSmsListener {
|
oneway interface IImsSmsListener {
|
||||||
void onSendSmsResult(int token, int messageRef, int status, int reason);
|
void onSendSmsResult(int token, int messageRef, int status, int reason);
|
||||||
void onSmsStatusReportReceived(int token, int messageRef, in String format,
|
void onSmsStatusReportReceived(int token, in String format, in byte[] pdu);
|
||||||
in byte[] pdu);
|
|
||||||
void onSmsReceived(int token, in String format, in byte[] pdu);
|
void onSmsReceived(int token, in String format, in byte[] pdu);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ public class ImsSmsImplBase {
|
|||||||
* {@link SmsMessage#FORMAT_3GPP2}.
|
* {@link SmsMessage#FORMAT_3GPP2}.
|
||||||
* @param smsc the Short Message Service Center address.
|
* @param smsc the Short Message Service Center address.
|
||||||
* @param isRetry whether it is a retry of an already attempted message or not.
|
* @param isRetry whether it is a retry of an already attempted message or not.
|
||||||
* @param pdu PDUs representing the contents of the message.
|
* @param pdu PDU representing the contents of the message.
|
||||||
*/
|
*/
|
||||||
public void sendSms(int token, int messageRef, String format, String smsc, boolean isRetry,
|
public void sendSms(int token, int messageRef, String format, String smsc, boolean isRetry,
|
||||||
byte[] pdu) {
|
byte[] pdu) {
|
||||||
@@ -166,27 +166,29 @@ public class ImsSmsImplBase {
|
|||||||
* provider.
|
* provider.
|
||||||
*
|
*
|
||||||
* @param token token provided in {@link #onSmsReceived(int, String, byte[])}
|
* @param token token provided in {@link #onSmsReceived(int, String, byte[])}
|
||||||
|
* @param messageRef the message reference
|
||||||
* @param result result of delivering the message. Valid values are:
|
* @param result result of delivering the message. Valid values are:
|
||||||
* {@link #DELIVER_STATUS_OK},
|
* {@link #DELIVER_STATUS_OK},
|
||||||
* {@link #DELIVER_STATUS_ERROR_GENERIC},
|
* {@link #DELIVER_STATUS_ERROR_GENERIC},
|
||||||
* {@link #DELIVER_STATUS_ERROR_NO_MEMORY},
|
* {@link #DELIVER_STATUS_ERROR_NO_MEMORY},
|
||||||
* {@link #DELIVER_STATUS_ERROR_REQUEST_NOT_SUPPORTED}
|
* {@link #DELIVER_STATUS_ERROR_REQUEST_NOT_SUPPORTED}
|
||||||
* @param messageRef the message reference
|
|
||||||
*/
|
*/
|
||||||
public void acknowledgeSms(int token, @DeliverStatusResult int messageRef, int result) {
|
public void acknowledgeSms(int token, int messageRef, @DeliverStatusResult int result) {
|
||||||
Log.e(LOG_TAG, "acknowledgeSms() not implemented.");
|
Log.e(LOG_TAG, "acknowledgeSms() not implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method will be triggered by the platform after
|
* This method will be triggered by the platform after
|
||||||
* {@link #onSmsStatusReportReceived(int, int, String, byte[])} has been called to provide the
|
* {@link #onSmsStatusReportReceived(int, int, String, byte[])} or
|
||||||
|
* {@link #onSmsStatusReportReceived(int, String, byte[])} has been called to provide the
|
||||||
* result to the IMS provider.
|
* result to the IMS provider.
|
||||||
*
|
*
|
||||||
* @param token token provided in {@link #sendSms(int, int, String, String, boolean, byte[])}
|
* @param token token provided in {@link #onSmsStatusReportReceived(int, int, String, byte[])}
|
||||||
|
* or {@link #onSmsStatusReportReceived(int, String, byte[])}
|
||||||
|
* @param messageRef the message reference
|
||||||
* @param result result of delivering the message. Valid values are:
|
* @param result result of delivering the message. Valid values are:
|
||||||
* {@link #STATUS_REPORT_STATUS_OK},
|
* {@link #STATUS_REPORT_STATUS_OK},
|
||||||
* {@link #STATUS_REPORT_STATUS_ERROR}
|
* {@link #STATUS_REPORT_STATUS_ERROR}
|
||||||
* @param messageRef the message reference
|
|
||||||
*/
|
*/
|
||||||
public void acknowledgeSmsReport(int token, int messageRef, @StatusReportResult int result) {
|
public void acknowledgeSmsReport(int token, int messageRef, @StatusReportResult int result) {
|
||||||
Log.e(LOG_TAG, "acknowledgeSmsReport() not implemented.");
|
Log.e(LOG_TAG, "acknowledgeSmsReport() not implemented.");
|
||||||
@@ -204,7 +206,7 @@ public class ImsSmsImplBase {
|
|||||||
* callbacks for this message.
|
* callbacks for this message.
|
||||||
* @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
|
* @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
|
||||||
* {@link SmsMessage#FORMAT_3GPP2}.
|
* {@link SmsMessage#FORMAT_3GPP2}.
|
||||||
* @param pdu PDUs representing the contents of the message.
|
* @param pdu PDU representing the contents of the message.
|
||||||
* @throws RuntimeException if called before {@link #onReady()} is triggered.
|
* @throws RuntimeException if called before {@link #onReady()} is triggered.
|
||||||
*/
|
*/
|
||||||
public final void onSmsReceived(int token, String format, byte[] pdu) throws RuntimeException {
|
public final void onSmsReceived(int token, String format, byte[] pdu) throws RuntimeException {
|
||||||
@@ -285,23 +287,32 @@ public class ImsSmsImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the status report of the sent message.
|
* This method should be triggered by the IMS providers when the status report of the sent
|
||||||
|
* message is received. The platform will handle the report and notify the IMS provider of the
|
||||||
|
* result by calling {@link #acknowledgeSmsReport(int, int, int)}.
|
||||||
*
|
*
|
||||||
|
* This method must not be called before {@link #onReady()} is called or the call will fail. If
|
||||||
|
* the platform is not available, {@link #acknowledgeSmsReport(int, int, int)} will be called
|
||||||
|
* with the {@link #STATUS_REPORT_STATUS_ERROR} result code.
|
||||||
* @param token token provided in {@link #sendSms(int, int, String, String, boolean, byte[])}
|
* @param token token provided in {@link #sendSms(int, int, String, String, boolean, byte[])}
|
||||||
* @param messageRef the message reference.
|
* @param messageRef the message reference.
|
||||||
* @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
|
* @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
|
||||||
* {@link SmsMessage#FORMAT_3GPP2}.
|
* {@link SmsMessage#FORMAT_3GPP2}.
|
||||||
* @param pdu PDUs representing the content of the status report.
|
* @param pdu PDU representing the content of the status report.
|
||||||
* @throws RuntimeException if called before {@link #onReady()} is triggered
|
* @throws RuntimeException if called before {@link #onReady()} is triggered
|
||||||
|
*
|
||||||
|
* @deprecated Use {@link #onSmsStatusReportReceived(int, String, byte[])} instead without the
|
||||||
|
* message reference.
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public final void onSmsStatusReportReceived(int token, int messageRef, String format,
|
public final void onSmsStatusReportReceived(int token, int messageRef, String format,
|
||||||
byte[] pdu) throws RuntimeException{
|
byte[] pdu) throws RuntimeException {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
if (mListener == null) {
|
if (mListener == null) {
|
||||||
throw new RuntimeException("Feature not ready.");
|
throw new RuntimeException("Feature not ready.");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
mListener.onSmsStatusReportReceived(token, messageRef, format, pdu);
|
mListener.onSmsStatusReportReceived(token, format, pdu);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Log.e(LOG_TAG, "Can not process sms status report: " + e.getMessage());
|
Log.e(LOG_TAG, "Can not process sms status report: " + e.getMessage());
|
||||||
acknowledgeSmsReport(token, messageRef, STATUS_REPORT_STATUS_ERROR);
|
acknowledgeSmsReport(token, messageRef, STATUS_REPORT_STATUS_ERROR);
|
||||||
@@ -309,6 +320,46 @@ public class ImsSmsImplBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method should be triggered by the IMS providers when the status report of the sent
|
||||||
|
* message is received. The platform will handle the report and notify the IMS provider of the
|
||||||
|
* result by calling {@link #acknowledgeSmsReport(int, int, int)}.
|
||||||
|
*
|
||||||
|
* This method must not be called before {@link #onReady()} is called or the call will fail. If
|
||||||
|
* the platform is not available, {@link #acknowledgeSmsReport(int, int, int)} will be called
|
||||||
|
* with the {@link #STATUS_REPORT_STATUS_ERROR} result code.
|
||||||
|
* @param token unique token generated by IMS providers that the platform will use to trigger
|
||||||
|
* callbacks for this message.
|
||||||
|
* @param format the format of the message. Valid values are {@link SmsMessage#FORMAT_3GPP} and
|
||||||
|
* {@link SmsMessage#FORMAT_3GPP2}.
|
||||||
|
* @param pdu PDU representing the content of the status report.
|
||||||
|
* @throws RuntimeException if called before {@link #onReady()} is triggered
|
||||||
|
*/
|
||||||
|
public final void onSmsStatusReportReceived(int token, String format, byte[] pdu)
|
||||||
|
throws RuntimeException {
|
||||||
|
synchronized (mLock) {
|
||||||
|
if (mListener == null) {
|
||||||
|
throw new RuntimeException("Feature not ready.");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
mListener.onSmsStatusReportReceived(token, format, pdu);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(LOG_TAG, "Can not process sms status report: " + e.getMessage());
|
||||||
|
SmsMessage message = SmsMessage.createFromPdu(pdu, format);
|
||||||
|
if (message != null && message.mWrappedSmsMessage != null) {
|
||||||
|
acknowledgeSmsReport(
|
||||||
|
token,
|
||||||
|
message.mWrappedSmsMessage.mMessageRef,
|
||||||
|
STATUS_REPORT_STATUS_ERROR);
|
||||||
|
} else {
|
||||||
|
Log.w(LOG_TAG,
|
||||||
|
"onSmsStatusReportReceivedWithoutMessageRef: Invalid pdu entered.");
|
||||||
|
acknowledgeSmsReport(token, 0, STATUS_REPORT_STATUS_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the SMS format. Default is {@link SmsMessage#FORMAT_3GPP} unless overridden by IMS
|
* Returns the SMS format. Default is {@link SmsMessage#FORMAT_3GPP} unless overridden by IMS
|
||||||
* Provider.
|
* Provider.
|
||||||
|
|||||||
Reference in New Issue
Block a user