/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.telephony.mbms;

import android.annotation.IntDef;
import android.annotation.Nullable;
import android.content.Context;
import android.telephony.MbmsStreamingSession;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
import java.util.concurrent.Executor;

A callback class that is used to receive information from the middleware on MBMS streaming services. An instance of this object should be passed into MbmsStreamingSession.create(Context, Executor, int, MbmsStreamingSessionCallback).
/** * A callback class that is used to receive information from the middleware on MBMS streaming * services. An instance of this object should be passed into * {@link MbmsStreamingSession#create(Context, Executor, int, MbmsStreamingSessionCallback)}. */
public class MbmsStreamingSessionCallback {
@hide
/** @hide */
@Retention(RetentionPolicy.SOURCE) @IntDef(value = { MbmsErrors.ERROR_NO_UNIQUE_MIDDLEWARE, MbmsErrors.ERROR_MIDDLEWARE_LOST, MbmsErrors.ERROR_MIDDLEWARE_NOT_BOUND, MbmsErrors.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED, MbmsErrors.InitializationErrors.ERROR_DUPLICATE_INITIALIZE, MbmsErrors.InitializationErrors.ERROR_UNABLE_TO_INITIALIZE, MbmsErrors.GeneralErrors.ERROR_MIDDLEWARE_NOT_YET_READY, MbmsErrors.GeneralErrors.ERROR_OUT_OF_MEMORY, MbmsErrors.GeneralErrors.ERROR_MIDDLEWARE_TEMPORARILY_UNAVAILABLE, MbmsErrors.GeneralErrors.ERROR_IN_E911, MbmsErrors.GeneralErrors.ERROR_NOT_CONNECTED_TO_HOME_CARRIER_LTE, MbmsErrors.GeneralErrors.ERROR_UNABLE_TO_READ_SIM, MbmsErrors.GeneralErrors.ERROR_CARRIER_CHANGE_NOT_ALLOWED, MbmsErrors.StreamingErrors.ERROR_CONCURRENT_SERVICE_LIMIT_REACHED, MbmsErrors.StreamingErrors.ERROR_UNABLE_TO_START_SERVICE, MbmsErrors.StreamingErrors.ERROR_DUPLICATE_START_STREAM}, prefix = { "ERROR_" }) private @interface StreamingError{}
Called by the middleware when it has detected an error condition. The possible error codes are listed in MbmsErrors.
Params:
  • errorCode – The error code.
  • message – A human-readable message generated by the middleware for debugging purposes.
/** * Called by the middleware when it has detected an error condition. The possible error codes * are listed in {@link MbmsErrors}. * @param errorCode The error code. * @param message A human-readable message generated by the middleware for debugging purposes. */
public void onError(@StreamingError int errorCode, @Nullable String message) { // default implementation empty }
Called to indicate published Streaming Services have changed. This will only be called after the application has requested a list of streaming services and specified a service class list of interest AND the results of a subsequent getStreamServices call with the same service class list would return different results.
Params:
  • services – The list of available services.
/** * Called to indicate published Streaming Services have changed. * * This will only be called after the application has requested * a list of streaming services and specified a service class list * of interest AND the results of a subsequent getStreamServices * call with the same service class list would return different * results. * * @param services The list of available services. */
public void onStreamingServicesUpdated(List<StreamingServiceInfo> services) { // default implementation empty }
Called to indicate that the middleware has been initialized and is ready. Before this method is called, calling any method on an instance of MbmsStreamingSession will result in an IllegalStateException or an error delivered via onError(int, String) with error code GeneralErrors.ERROR_MIDDLEWARE_NOT_YET_READY.
/** * Called to indicate that the middleware has been initialized and is ready. * * Before this method is called, calling any method on an instance of * {@link MbmsStreamingSession} will result in an {@link IllegalStateException} or an error * delivered via {@link #onError(int, String)} with error code * {@link MbmsErrors.GeneralErrors#ERROR_MIDDLEWARE_NOT_YET_READY}. */
public void onMiddlewareReady() { // default implementation empty } }