Home | History | Annotate | Download | only in cat
      1 /*
      2  * Copyright (C) 2006 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.internal.telephony.cat;
     18 
     19 /**
     20  * Interface for communication between STK App and CAT Telephony
     21  *
     22  * {@hide}
     23  */
     24 public interface AppInterface {
     25 
     26     /*
     27      * Intent's actions which are broadcasted by the Telephony once a new CAT
     28      * proactive command, session end arrive.
     29      */
     30     public static final String CAT_CMD_ACTION =
     31                                     "android.intent.action.stk.command";
     32     public static final String CAT_SESSION_END_ACTION =
     33                                     "android.intent.action.stk.session_end";
     34 
     35     /*
     36      * Callback function from app to telephony to pass a result code and user's
     37      * input back to the ICC.
     38      */
     39     void onCmdResponse(CatResponseMessage resMsg);
     40 
     41     /*
     42      * Enumeration for representing "Type of Command" of proactive commands.
     43      * Those are the only commands which are supported by the Telephony. Any app
     44      * implementation should support those.
     45      * Refer to ETSI TS 102.223 section 9.4
     46      */
     47     public static enum CommandType {
     48         DISPLAY_TEXT(0x21),
     49         GET_INKEY(0x22),
     50         GET_INPUT(0x23),
     51         LAUNCH_BROWSER(0x15),
     52         PLAY_TONE(0x20),
     53         REFRESH(0x01),
     54         SELECT_ITEM(0x24),
     55         SEND_SS(0x11),
     56         SEND_USSD(0x12),
     57         SEND_SMS(0x13),
     58         SEND_DTMF(0x14),
     59         SET_UP_EVENT_LIST(0x05),
     60         SET_UP_IDLE_MODE_TEXT(0x28),
     61         SET_UP_MENU(0x25),
     62         SET_UP_CALL(0x10),
     63         PROVIDE_LOCAL_INFORMATION(0x26),
     64         OPEN_CHANNEL(0x40),
     65         CLOSE_CHANNEL(0x41),
     66         RECEIVE_DATA(0x42),
     67         SEND_DATA(0x43);
     68 
     69         private int mValue;
     70 
     71         CommandType(int value) {
     72             mValue = value;
     73         }
     74 
     75         public int value() {
     76             return mValue;
     77         }
     78 
     79         /**
     80          * Create a CommandType object.
     81          *
     82          * @param value Integer value to be converted to a CommandType object.
     83          * @return CommandType object whose "Type of Command" value is {@code
     84          *         value}. If no CommandType object has that value, null is
     85          *         returned.
     86          */
     87         public static CommandType fromInt(int value) {
     88             for (CommandType e : CommandType.values()) {
     89                 if (e.mValue == value) {
     90                     return e;
     91                 }
     92             }
     93             return null;
     94         }
     95     }
     96 }
     97