1 /* 2 * Copyright (C) 2017 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 android.telephony.mbms; 18 19 import android.telephony.MbmsStreamingSession; 20 21 public class MbmsErrors { 22 /** 23 * Indicates that the middleware has sent an error code that is not defined in the version of 24 * the SDK targeted by your app. This is an illegal value for the middleware to return -- it 25 * should only ever be generated by the framework. 26 */ 27 public static final int UNKNOWN = -1; 28 29 /** Indicates that the operation was successful. */ 30 public static final int SUCCESS = 0; 31 32 // Following errors are generated in the manager and should not be returned from the 33 // middleware 34 /** 35 * Indicates that either no MBMS middleware app is installed on the device or multiple 36 * middleware apps are installed on the device. 37 */ 38 public static final int ERROR_NO_UNIQUE_MIDDLEWARE = 1; 39 40 /** 41 * Indicates that the app attempted to perform an operation on an instance of 42 * {@link android.telephony.MbmsDownloadSession} or 43 * {@link MbmsStreamingSession} without being bound to the middleware. 44 */ 45 public static final int ERROR_MIDDLEWARE_NOT_BOUND = 2; 46 47 /** Indicates that the middleware has died and the requested operation was not completed.*/ 48 public static final int ERROR_MIDDLEWARE_LOST = 3; 49 50 /** 51 * Indicates errors that may be generated during initialization by the 52 * middleware. They are applicable to both streaming and file-download use-cases. 53 */ 54 public static class InitializationErrors { InitializationErrors()55 private InitializationErrors() {} 56 /** 57 * Indicates that the app tried to create more than one instance each of 58 * {@link MbmsStreamingSession} or {@link android.telephony.MbmsDownloadSession}. 59 */ 60 public static final int ERROR_DUPLICATE_INITIALIZE = 101; 61 /** Indicates that the app is not authorized to access media via MBMS.*/ 62 public static final int ERROR_APP_PERMISSIONS_NOT_GRANTED = 102; 63 /** Indicates that the middleware was unable to initialize for this app. */ 64 public static final int ERROR_UNABLE_TO_INITIALIZE = 103; 65 } 66 67 /** 68 * Indicates the errors that may occur at any point and are applicable to both 69 * streaming and file-download. 70 */ 71 public static class GeneralErrors { GeneralErrors()72 private GeneralErrors() {} 73 /** 74 * Indicates that the app attempted to perform an operation before receiving notification 75 * that the middleware is ready via {@link MbmsStreamingSessionCallback#onMiddlewareReady()} 76 * or {@link MbmsDownloadSessionCallback#onMiddlewareReady()}. 77 */ 78 public static final int ERROR_MIDDLEWARE_NOT_YET_READY = 201; 79 /** 80 * Indicates that the middleware ran out of memory and was unable to complete the requested 81 * operation. 82 */ 83 public static final int ERROR_OUT_OF_MEMORY = 202; 84 /** 85 * Indicates that the requested operation failed due to the middleware being unavailable due 86 * to a transient condition. The app may retry the operation at a later time. 87 */ 88 public static final int ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE = 203; 89 /** 90 * Indicates that the requested operation was not performed due to being in emergency 91 * callback mode. 92 */ 93 public static final int ERROR_IN_E911 = 204; 94 /** Indicates that MBMS is not available due to the device being in roaming. */ 95 public static final int ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE = 205; 96 /** Indicates that MBMS is not available due to a SIM read error. */ 97 public static final int ERROR_UNABLE_TO_READ_SIM = 206; 98 /** 99 * Indicates that MBMS is not available due to the inserted SIM being from an unsupported 100 * carrier. 101 */ 102 public static final int ERROR_CARRIER_CHANGE_NOT_ALLOWED = 207; 103 } 104 105 /** 106 * Indicates the errors that are applicable only to the streaming use-case 107 */ 108 public static class StreamingErrors { StreamingErrors()109 private StreamingErrors() {} 110 /** Indicates that the middleware cannot start a stream due to too many ongoing streams */ 111 public static final int ERROR_CONCURRENT_SERVICE_LIMIT_REACHED = 301; 112 113 /** Indicates that the middleware was unable to start the streaming service */ 114 public static final int ERROR_UNABLE_TO_START_SERVICE = 302; 115 116 /** 117 * Indicates that the app called 118 * {@link MbmsStreamingSession#startStreaming(StreamingServiceInfo, 119 * java.util.concurrent.Executor, StreamingServiceCallback)} 120 * more than once for the same {@link StreamingServiceInfo}. 121 */ 122 public static final int ERROR_DUPLICATE_START_STREAM = 303; 123 } 124 125 /** 126 * Indicates the errors that are applicable only to the file-download use-case 127 */ 128 public static class DownloadErrors { DownloadErrors()129 private DownloadErrors() { } 130 /** 131 * Indicates that the app is not allowed to change the temp file root at this time due to 132 * outstanding download requests. 133 */ 134 public static final int ERROR_CANNOT_CHANGE_TEMP_FILE_ROOT = 401; 135 136 /** Indicates that the middleware has no record of the supplied {@link DownloadRequest}. */ 137 public static final int ERROR_UNKNOWN_DOWNLOAD_REQUEST = 402; 138 139 /** Indicates the the middleware has no record of the supplied {@link FileInfo} */ 140 public static final int ERROR_UNKNOWN_FILE_INFO = 403; 141 } 142 143 /** 144 * Indicates the errors that are applicable only to the group call use-case. 145 */ 146 public static class GroupCallErrors { GroupCallErrors()147 private GroupCallErrors() { } 148 /** Indicates that the middleware was unable to start the group call. */ 149 public static final int ERROR_UNABLE_TO_START_SERVICE = 501; 150 151 /** 152 * Indicates that the app called 153 * {@link android.telephony.MbmsGroupCallSession#startGroupCall} more than once for the 154 * same {@code tmgi}. 155 */ 156 public static final int ERROR_DUPLICATE_START_GROUP_CALL = 502; 157 } 158 MbmsErrors()159 private MbmsErrors() {} 160 } 161