1f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang/** 2f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Copyright (c) 2014, The Android Open Source Project 3f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 4f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * you may not use this file except in compliance with the License. 6f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * You may obtain a copy of the License at 7f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 8f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * http://www.apache.org/licenses/LICENSE-2.0 9f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 10f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Unless required by applicable law or agreed to in writing, software 11f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * distributed under the License is distributed on an "AS IS" BASIS, 12f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * See the License for the specific language governing permissions and 14f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * limitations under the License. 15f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 16f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 17b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wangpackage android.service.carrier; 18f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 19f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wangimport android.net.Uri; 20b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wangimport android.service.carrier.ICarrierMessagingCallback; 21b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wangimport android.service.carrier.MessagePdu; 22f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 23f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang/** 24f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * <p class="note"><strong>Note:</strong> 25f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * This service can only be implemented by a carrier privileged app. 26b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @hide 27f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 28f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wangoneway interface ICarrierMessagingService { 29f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 30f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request filtering an incoming SMS message. 31f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call callback.onFilterComplete with the filtering result. 32f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 33f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param pdu the PDUs of the message 34f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param format the format of the PDUs, typically "3gpp" or "3gpp2" 35f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param destPort the destination port of a data SMS. It will be -1 for text SMS 36b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 37f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 38f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 39f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang void filterSms( 40b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang in MessagePdu pdu, String format, int destPort, int subId, 41b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang in ICarrierMessagingCallback callback); 42f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 43f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 44f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request sending a new text SMS from the device. 45f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send 46f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * status. 47f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 48f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param text the text to send 49b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 50f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param destAddress phone number of the recipient of the message 51f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang * @param sendSmsFlag flag for sending SMS 52f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 53f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 54f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang void sendTextSms(String text, int subId, String destAddress, int sendSmsFlag, 55f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang in ICarrierMessagingCallback callback); 56f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 57f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 58f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request sending a new data SMS from the device. 59f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send 60f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * status. 61f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 62f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param data the data to send 63b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 64f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param destAddress phone number of the recipient of the message 65f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param destPort port number of the recipient of the message 66f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang * @param sendSmsFlag flag for sending SMS 67f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 68f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 69b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang void sendDataSms(in byte[] data, int subId, String destAddress, int destPort, 70f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang int sendSmsFlag, in ICarrierMessagingCallback callback); 71f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 72f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 73f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request sending a new multi-part text SMS from the device. 74f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call {@link ICarrierMessagingCallback#onSendMultipartSmsComplete} 75f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * with the send status. 76f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 77f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param parts the parts of the multi-part text SMS to send 78b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 79f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param destAddress phone number of the recipient of the message 80f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang * @param sendSmsFlag flag for sending SMS 81f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 82f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 83b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang void sendMultipartTextSms(in List<String> parts, int subId, String destAddress, 84f657b9969d337c1d3ac82dc53191c36779d852e9Cheuksan Wang int sendSmsFlag, in ICarrierMessagingCallback callback); 85f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 86f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 87f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request sending a new MMS PDU from the device. 88f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call {@link ICarrierMessagingCallback#onSendMmsComplete} with the send 89f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * status. 90f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 91f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param pduUri the content provider URI of the PDU to send 92b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 93b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param location the optional URI to send this MMS PDU. If this is {code null}, 94b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * the PDU should be sent to the default MMSC URL. 95f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 96f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 97b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang void sendMms(in Uri pduUri, int subId, in Uri location, 98b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang in ICarrierMessagingCallback callback); 99f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 100f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang /** 101f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * Request downloading a new MMS. 102f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * The service will call {@link ICarrierMessagingCallback#onDownloadMmsComplete} with the 103f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * download status. 104f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * 105f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param pduUri the content provider URI of the PDU to be downloaded. 106b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param subId SMS subscription ID of the SIM 107b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang * @param location the URI of the message to be downloaded. 108f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang * @param callback the callback to notify upon completion 109f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang */ 110b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang void downloadMms(in Uri pduUri, int subId, in Uri location, 111b72eb97e4bca1e4fd68e79f9d04e9a6a15aebd21Cheuksan Wang in ICarrierMessagingCallback callback); 112f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang} 113f9c50c45c615338bf9bfe57cd1ecff490051c997Cheuksan Wang 114