Merge "Second pass of eMBMS api." am: c90fcbd660 am: d61dc9e842
am: 4779240573
Change-Id: I56a0c0dc4ddbb3d168c1a386e92158b4a1d2bdde
This commit is contained in:
13
Android.mk
13
Android.mk
@@ -484,6 +484,12 @@ LOCAL_SRC_FILES += \
|
|||||||
telecomm/java/com/android/internal/telecom/IInCallService.aidl \
|
telecomm/java/com/android/internal/telecom/IInCallService.aidl \
|
||||||
telecomm/java/com/android/internal/telecom/ITelecomService.aidl \
|
telecomm/java/com/android/internal/telecom/ITelecomService.aidl \
|
||||||
telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl \
|
telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/IMbmsDownloadManagerListener.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/IMbmsStreamingManagerListener.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/IDownloadListener.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/IStreamingServiceListener.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl \
|
||||||
|
telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl \
|
||||||
telephony/java/com/android/ims/internal/IImsCallSession.aidl \
|
telephony/java/com/android/ims/internal/IImsCallSession.aidl \
|
||||||
telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl \
|
telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl \
|
||||||
telephony/java/com/android/ims/internal/IImsConfig.aidl \
|
telephony/java/com/android/ims/internal/IImsConfig.aidl \
|
||||||
@@ -607,6 +613,13 @@ framework_built := $(call java-lib-deps,framework)
|
|||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
aidl_files := \
|
aidl_files := \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/DownloadRequest.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/DownloadStatus.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/FileInfo.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/FileServiceInfo.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/ServiceInfo.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/StreamingService.aidl \
|
||||||
|
frameworks/base/telephony/java/android/telephony/mbms/StreamingServiceInfo.aidl \
|
||||||
frameworks/base/telephony/java/android/telephony/ServiceState.aidl \
|
frameworks/base/telephony/java/android/telephony/ServiceState.aidl \
|
||||||
frameworks/base/telephony/java/android/telephony/SubscriptionInfo.aidl \
|
frameworks/base/telephony/java/android/telephony/SubscriptionInfo.aidl \
|
||||||
frameworks/base/telephony/java/android/telephony/CellInfo.aidl \
|
frameworks/base/telephony/java/android/telephony/CellInfo.aidl \
|
||||||
|
|||||||
149
telephony/java/android/telephony/MbmsDownloadManager.java
Normal file
149
telephony/java/android/telephony/MbmsDownloadManager.java
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
import android.app.PendingIntent;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.telephony.mbms.DownloadListener;
|
||||||
|
import android.telephony.mbms.DownloadRequest;
|
||||||
|
import android.telephony.mbms.DownloadStatus;
|
||||||
|
import android.telephony.mbms.FileServiceInfo;
|
||||||
|
import android.telephony.mbms.IMbmsDownloadManagerListener;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
public class MbmsDownloadManager {
|
||||||
|
private final Context mContext;
|
||||||
|
private int mSubId = INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* should use createManager to create/initialize a copy
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public MbmsDownloadManager(Context context) {
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MbmsDownloadManager createManager(Context context,
|
||||||
|
IMbmsDownloadManagerListener listener, String downloadAppName) {
|
||||||
|
// MbmsDownloadManager mdm = context.getSystemService(Context.MBMS_DOWNLOAD_SERVICE);
|
||||||
|
// if (mdm == null) return mdm;
|
||||||
|
// mdm.initialize(listener, downloadAppName,
|
||||||
|
// SubscriptionManager.getDefaultSubscriptionId());
|
||||||
|
// return mdm;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MbmsDownloadManager createManager(Context context,
|
||||||
|
IMbmsDownloadManagerListener listener, String downloadAppName, int subId) {
|
||||||
|
// MbmsDownloadManager mdm = context.getSystemService(Context.MBMS_DOWNLOAD_SERVICE);
|
||||||
|
// if (mdm == null) return mdm;
|
||||||
|
// mdm.initialize(listener, downloadAppName, subId);
|
||||||
|
// return mdm;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initialize(IMbmsDownloadManagerListener listener, String downloadAppName,
|
||||||
|
int subId) {
|
||||||
|
// assert all empty and set
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the list of files published for download.
|
||||||
|
* They may occur at times far in the future.
|
||||||
|
* servicesClasses lets the app filter on types of files and is opaque data between
|
||||||
|
* the app and the carrier
|
||||||
|
*/
|
||||||
|
public int getFileServices(List<String> serviceClasses) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static final String EXTRA_REQUEST = "extraRequest";
|
||||||
|
|
||||||
|
public static final int RESULT_SUCCESSFUL = 1;
|
||||||
|
public static final int RESULT_CANCELLED = 2;
|
||||||
|
public static final int RESULT_EXPIRED = 3;
|
||||||
|
// TODO - more results!
|
||||||
|
|
||||||
|
public static final String EXTRA_RESULT = "extraResult";
|
||||||
|
public static final String EXTRA_URI = "extraDownloadedUri";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Requests a future download.
|
||||||
|
* returns a token which may be used to cancel a download.
|
||||||
|
* fileServiceInfo indicates what FileService to download from
|
||||||
|
* source indicates which file to download from the given FileService. This is
|
||||||
|
* an optional field - it may be null or empty to indicate download everything from
|
||||||
|
* the FileService.
|
||||||
|
* destination is a file URI for where in the apps accessible storage locations to write
|
||||||
|
* the content. This URI may be used to store temporary data and should not be
|
||||||
|
* accessed until the PendingIntent is called indicating success.
|
||||||
|
* resultIntent is sent when each file is completed and when the request is concluded
|
||||||
|
* either via TTL expiration, cancel or error.
|
||||||
|
* This intent is sent with three extras: a {@link DownloadRequest} typed extra called
|
||||||
|
* {@link #EXTRA_REQUEST}, an Integer called {@link #EXTRA_RESULT} for the result code
|
||||||
|
* and a {@link Uri} called {@link #EXTRA_URI} to the resulting file (if successful).
|
||||||
|
* downloadListener is an optional callback object which can be used to get progress reports
|
||||||
|
* of a currently occuring download. Note this can only run while the calling app
|
||||||
|
* is running, so future downloads will simply result in resultIntents being sent
|
||||||
|
* for completed or errored-out downloads. A NULL indicates no callbacks are needed.
|
||||||
|
*/
|
||||||
|
public DownloadRequest download(DownloadRequest downloadRequest, DownloadListener listener) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DownloadRequest> listPendingDownloads() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int cancelDownload(DownloadRequest downloadRequest) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets information about current and known upcoming downloads.
|
||||||
|
*
|
||||||
|
* Current is a straightforward count of the files being downloaded "now"
|
||||||
|
* for some definition of now (may be racey).
|
||||||
|
* Future downloads include counts of files with pending repair operations, counts of
|
||||||
|
* files with future downloads and indication of scheduled download times with unknown
|
||||||
|
* file details.
|
||||||
|
*/
|
||||||
|
public DownloadStatus getDownloadStatus(DownloadRequest downloadRequest) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resets middleware knowldge regarding this download request.
|
||||||
|
*
|
||||||
|
* This state consists of knowledge of what files have already been downloaded.
|
||||||
|
* Normally the middleware won't download files who's hash matches previously downloaded
|
||||||
|
* content, even if that content has since been deleted. If this function is called
|
||||||
|
* repeated content will be downloaded again when available. This does not interrupt
|
||||||
|
* in-progress downloads.
|
||||||
|
*/
|
||||||
|
public void resetDownloadKnowledge(DownloadRequest downloadRequest) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispose() {
|
||||||
|
}
|
||||||
|
}
|
||||||
111
telephony/java/android/telephony/MbmsStreamingManager.java
Normal file
111
telephony/java/android/telephony/MbmsStreamingManager.java
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.telephony.mbms.IMbmsStreamingManagerListener;
|
||||||
|
import android.telephony.mbms.IStreamingServiceListener;
|
||||||
|
import android.telephony.mbms.StreamingService;
|
||||||
|
import android.telephony.mbms.StreamingServiceInfo;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
public class MbmsStreamingManager {
|
||||||
|
private static final String LOG_TAG = "MbmsStreamingManager";
|
||||||
|
private static final boolean DEBUG = true;
|
||||||
|
|
||||||
|
private final Context mContext;
|
||||||
|
private int mSubId = INVALID_SUBSCRIPTION_ID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new MbmsStreamingManager using the system default data subscription ID.
|
||||||
|
*
|
||||||
|
* Note that this call will bind a remote service and that may take a bit. This
|
||||||
|
* may throw an IllegalArgumentException.
|
||||||
|
*/
|
||||||
|
public MbmsStreamingManager(Context context, IMbmsStreamingManagerListener listener,
|
||||||
|
String streamingAppName) {
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new MbmsStreamingManager using the give subscription ID.
|
||||||
|
*
|
||||||
|
* Note that this call will bind a remote service and that may take a bit. This
|
||||||
|
* may throw an IllegalArgumentException.
|
||||||
|
*/
|
||||||
|
public MbmsStreamingManager(Context context, IMbmsStreamingManagerListener listener,
|
||||||
|
String streamingAppName, int subId) {
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Terminates this instance, ending calls to the registered listener. Also terminates
|
||||||
|
* any streaming services spawned from this instance.
|
||||||
|
*/
|
||||||
|
public void dispose() {
|
||||||
|
// service.dispose(streamingAppName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An inspection API to retrieve the list of streaming media currently be advertised.
|
||||||
|
* The results are returned asynchronously through the previously registered callback.
|
||||||
|
* serviceClasses lets the app filter on types of programming and is opaque data between
|
||||||
|
* the app and the carrier.
|
||||||
|
*
|
||||||
|
* Multiple calls replace the list of serviceClasses of interest.
|
||||||
|
* The return value is a success/error-code with the following possible values:
|
||||||
|
* <li>SUCCESS</li>
|
||||||
|
* <li>NO_MIDDLEWARE</li>
|
||||||
|
* <li>QUEUE_LIMIT</li>
|
||||||
|
*/
|
||||||
|
public int getStreamingServices(List<String> classList) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts streaming a requested service, reporting status to the indicated listener.
|
||||||
|
* Returns an object used to control that stream.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public StreamingService startStreaming(StreamingServiceInfo serviceInfo,
|
||||||
|
IStreamingServiceListener listener) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lists all the services currently being streamed to the device by this application
|
||||||
|
* on this given subId. Results are returned asynchronously through the previously
|
||||||
|
* registered callback.
|
||||||
|
*
|
||||||
|
* The return value is a success/error-code with the following possible values:
|
||||||
|
* <li>SUCCESS</li>
|
||||||
|
* <li>NO_MIDDLEWARE</li>
|
||||||
|
* <li>QUEU_LIMIT</li>
|
||||||
|
*/
|
||||||
|
public int getActiveStreamingServices() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void logd(String str) {
|
||||||
|
Log.d(LOG_TAG, str);
|
||||||
|
}
|
||||||
|
}
|
||||||
41
telephony/java/android/telephony/mbms/DownloadListener.java
Normal file
41
telephony/java/android/telephony/mbms/DownloadListener.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A optional listener class used by download clients to track progress.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class DownloadListener extends IDownloadListener.Stub {
|
||||||
|
/**
|
||||||
|
* Gives process callbacks for a given DownloadRequest.
|
||||||
|
* request indicates which download is being referenced.
|
||||||
|
* fileInfo gives information about the file being downloaded. Note that
|
||||||
|
* the request may result in many files being downloaded and the client
|
||||||
|
* may not have been able to get a list of them in advance.
|
||||||
|
* downloadSize is the final amount to be downloaded. This may be different
|
||||||
|
* from the decoded final size, but is useful in gauging download progress.
|
||||||
|
* currentSize is the amount currently downloaded.
|
||||||
|
* decodedPercent is the percent from 0 to 100 of the file decoded. After the
|
||||||
|
* download completes the contents needs to be processed. It is perhaps
|
||||||
|
* uncompressed, transcoded and/or decrypted. Generally the download completes
|
||||||
|
* before the decode is started, but that's not required.
|
||||||
|
*/
|
||||||
|
public void progress(DownloadRequest request, FileInfo fileInfo,
|
||||||
|
int downloadSize, int currentSize, int decodedPercent) {
|
||||||
|
}
|
||||||
|
}
|
||||||
19
telephony/java/android/telephony/mbms/DownloadRequest.aidl
Executable file
19
telephony/java/android/telephony/mbms/DownloadRequest.aidl
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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;
|
||||||
|
|
||||||
|
parcelable DownloadRequest;
|
||||||
88
telephony/java/android/telephony/mbms/DownloadRequest.java
Normal file
88
telephony/java/android/telephony/mbms/DownloadRequest.java
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 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.app.PendingIntent;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class describing a pending Cell-Broadcast download request
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class DownloadRequest implements Parcelable {
|
||||||
|
public DownloadRequest(int id, FileServiceInfo serviceInfo, Uri source, Uri dest,
|
||||||
|
PendingIntent resultPI, int sub) {
|
||||||
|
downloadId = id;
|
||||||
|
fileServiceInfo = serviceInfo;
|
||||||
|
sourceUri = source;
|
||||||
|
destinationUri = dest;
|
||||||
|
subId = sub;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
public DownloadRequest(DownloadRequest dr, PendingIntent fdRequestPI, PendingIntent cleanupPI) {
|
||||||
|
downloadId = dr.downloadId;
|
||||||
|
fileServiceInfo = dr.fileServiceInfo;
|
||||||
|
sourceUri = dr.sourceUri;
|
||||||
|
destinationUri = dr.destinationUri;
|
||||||
|
subId = dr.subId;
|
||||||
|
/*
|
||||||
|
* resultPI = new PI
|
||||||
|
* fileDescriptorRequstPI = fdRequestPI;
|
||||||
|
* this.cleanupPI = cleanupPI;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
public final int downloadId;
|
||||||
|
public final FileServiceInfo fileServiceInfo;
|
||||||
|
public final Uri sourceUri;
|
||||||
|
public final Uri destinationUri;
|
||||||
|
public final int subId;
|
||||||
|
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToParcel(Parcel out, int flags) {
|
||||||
|
out.writeInt(downloadId);
|
||||||
|
out.writeParcelable(fileServiceInfo, flags);
|
||||||
|
out.writeParcelable(sourceUri, flags);
|
||||||
|
out.writeParcelable(destinationUri, flags);
|
||||||
|
out.writeInt(subId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DownloadRequest(Parcel in) {
|
||||||
|
downloadId = in.readInt();
|
||||||
|
fileServiceInfo = in.readParcelable(null);
|
||||||
|
sourceUri = in.readParcelable(null);
|
||||||
|
destinationUri = in.readParcelable(null);
|
||||||
|
subId = in.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<DownloadRequest> CREATOR =
|
||||||
|
new Parcelable.Creator<DownloadRequest>() {
|
||||||
|
public DownloadRequest createFromParcel(Parcel in) {
|
||||||
|
return new DownloadRequest(in);
|
||||||
|
}
|
||||||
|
public DownloadRequest[] newArray(int size) {
|
||||||
|
return new DownloadRequest[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
19
telephony/java/android/telephony/mbms/DownloadStatus.aidl
Executable file
19
telephony/java/android/telephony/mbms/DownloadStatus.aidl
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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;
|
||||||
|
|
||||||
|
parcelable DownloadStatus;
|
||||||
77
telephony/java/android/telephony/mbms/DownloadStatus.java
Normal file
77
telephony/java/android/telephony/mbms/DownloadStatus.java
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2017 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.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class describing the status of a Cell-Broadcast download request
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class DownloadStatus implements Parcelable {
|
||||||
|
// includes downloads and active repair work
|
||||||
|
public final int activelyDownloading;
|
||||||
|
|
||||||
|
// files scheduled for future broadcast
|
||||||
|
public final int pendingDownloads;
|
||||||
|
|
||||||
|
// files scheduled for future repairs
|
||||||
|
public final int pendingRepairs;
|
||||||
|
|
||||||
|
// is a future download window scheduled with unknown
|
||||||
|
// number of files
|
||||||
|
public final boolean windowPending;
|
||||||
|
|
||||||
|
public DownloadStatus(int downloading, int downloads, int repairs, boolean window) {
|
||||||
|
activelyDownloading = downloading;
|
||||||
|
pendingDownloads = downloads;
|
||||||
|
pendingRepairs = repairs;
|
||||||
|
windowPending = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<DownloadStatus> CREATOR =
|
||||||
|
new Parcelable.Creator<DownloadStatus>() {
|
||||||
|
@Override
|
||||||
|
public DownloadStatus createFromParcel(Parcel in) {
|
||||||
|
return new DownloadStatus(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DownloadStatus[] newArray(int size) {
|
||||||
|
return new DownloadStatus[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
DownloadStatus(Parcel in) {
|
||||||
|
activelyDownloading = in.readInt();
|
||||||
|
pendingDownloads = in.readInt();
|
||||||
|
pendingRepairs = in.readInt();
|
||||||
|
windowPending = (in.readInt() == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeInt(activelyDownloading);
|
||||||
|
dest.writeInt(pendingDownloads);
|
||||||
|
dest.writeInt(pendingRepairs);
|
||||||
|
dest.writeInt((windowPending ? 1 : 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
20
telephony/java/android/telephony/mbms/FileInfo.aidl
Executable file
20
telephony/java/android/telephony/mbms/FileInfo.aidl
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 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;
|
||||||
|
|
||||||
|
parcelable FileInfo;
|
||||||
93
telephony/java/android/telephony/mbms/FileInfo.java
Normal file
93
telephony/java/android/telephony/mbms/FileInfo.java
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* 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.net.Uri;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class Cell-Broadcast downloadable file information.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class FileInfo implements Parcelable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URI into the carriers infrastructure which points to this file.
|
||||||
|
* This is used internally but is also one of the few pieces of data about the content that is
|
||||||
|
* exposed and may be needed for disambiguation by the application.
|
||||||
|
*/
|
||||||
|
final Uri uri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mime type of the content.
|
||||||
|
*/
|
||||||
|
final String mimeType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The size of the file in bytes.
|
||||||
|
*/
|
||||||
|
final long size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MD5 hash of the file.
|
||||||
|
*/
|
||||||
|
final byte md5Hash[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the parent service for this file.
|
||||||
|
*/
|
||||||
|
public FileServiceInfo getFileServiceInfo() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<FileInfo> CREATOR =
|
||||||
|
new Parcelable.Creator<FileInfo>() {
|
||||||
|
@Override
|
||||||
|
public FileInfo createFromParcel(Parcel source) {
|
||||||
|
return new FileInfo(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileInfo[] newArray(int size) {
|
||||||
|
return new FileInfo[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private FileInfo(Parcel in) {
|
||||||
|
uri = in.readParcelable(null);
|
||||||
|
mimeType = in.readString();
|
||||||
|
size = in.readLong();
|
||||||
|
int arraySize = in.readInt();
|
||||||
|
md5Hash = new byte[arraySize];
|
||||||
|
in.readByteArray(md5Hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
dest.writeParcelable(uri, flags);
|
||||||
|
dest.writeString(mimeType);
|
||||||
|
dest.writeLong(size);
|
||||||
|
dest.writeInt(md5Hash.length);
|
||||||
|
dest.writeByteArray(md5Hash);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
20
telephony/java/android/telephony/mbms/FileServiceInfo.aidl
Executable file
20
telephony/java/android/telephony/mbms/FileServiceInfo.aidl
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 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;
|
||||||
|
|
||||||
|
parcelable FileServiceInfo;
|
||||||
70
telephony/java/android/telephony/mbms/FileServiceInfo.java
Normal file
70
telephony/java/android/telephony/mbms/FileServiceInfo.java
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* 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.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class Cell-Broadcast downloadable file information.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class FileServiceInfo extends ServiceInfo implements Parcelable {
|
||||||
|
public List<FileInfo> files;
|
||||||
|
|
||||||
|
public FileServiceInfo(Map<Locale, String> newNames, String newClassName, Locale newLocale,
|
||||||
|
String newServiceId, Date start, Date end, List<FileInfo> newFiles) {
|
||||||
|
super(newNames, newClassName, newLocale, newServiceId, start, end);
|
||||||
|
files = new ArrayList(newFiles);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<FileServiceInfo> CREATOR =
|
||||||
|
new Parcelable.Creator<FileServiceInfo>() {
|
||||||
|
@Override
|
||||||
|
public FileServiceInfo createFromParcel(Parcel source) {
|
||||||
|
return new FileServiceInfo(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileServiceInfo[] newArray(int size) {
|
||||||
|
return new FileServiceInfo[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
FileServiceInfo(Parcel in) {
|
||||||
|
super(in);
|
||||||
|
files = new ArrayList<FileInfo>();
|
||||||
|
in.readList(files, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
super.writeToParcel(dest, flags);
|
||||||
|
dest.writeList(files);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
34
telephony/java/android/telephony/mbms/IDownloadListener.aidl
Executable file
34
telephony/java/android/telephony/mbms/IDownloadListener.aidl
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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.telephony.mbms.DownloadRequest;
|
||||||
|
import android.telephony.mbms.FileInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The optional interface used by download clients to track progress.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
interface IDownloadListener
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Gives progress callbacks for a given DownloadRequest. Includes a FileInfo
|
||||||
|
* as the list of files may not have been known at request-time.
|
||||||
|
*/
|
||||||
|
void progress(in DownloadRequest request, in FileInfo fileInfo, int downloadSize,
|
||||||
|
int currentSize, int decodedPercent);
|
||||||
|
}
|
||||||
42
telephony/java/android/telephony/mbms/IMbmsDownloadManagerListener.aidl
Executable file
42
telephony/java/android/telephony/mbms/IMbmsDownloadManagerListener.aidl
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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.telephony.mbms.FileServiceInfo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The interface the clients top-level file download listener will satisfy.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
interface IMbmsDownloadManagerListener
|
||||||
|
{
|
||||||
|
void error(int errorCode, String message);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate published File Services have changed.
|
||||||
|
*
|
||||||
|
* This will only be called after the application has requested
|
||||||
|
* a list of file services and specified a service class list
|
||||||
|
* of interest AND the results of a subsequent getFileServices
|
||||||
|
* call with the same service class list would
|
||||||
|
* return different
|
||||||
|
* results.
|
||||||
|
*/
|
||||||
|
void fileServicesUpdated(in List<FileServiceInfo> services);
|
||||||
|
}
|
||||||
53
telephony/java/android/telephony/mbms/IMbmsStreamingManagerListener.aidl
Executable file
53
telephony/java/android/telephony/mbms/IMbmsStreamingManagerListener.aidl
Executable file
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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.telephony.mbms.StreamingServiceInfo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The interface the clients top-level streaming listener will satisfy.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
interface IMbmsStreamingManagerListener
|
||||||
|
{
|
||||||
|
void error(int errorCode, String message);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
void streamingServicesUpdated(in List<StreamingServiceInfo> services);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate the active Streaming Services have changed.
|
||||||
|
*
|
||||||
|
* This will be caused whenever a new service starts streaming or whenever
|
||||||
|
* MbmsStreamServiceManager.getActiveStreamingServices is called.
|
||||||
|
*
|
||||||
|
* @param services a list of StreamingServiceInfos. May be empty if
|
||||||
|
* there are no active StreamingServices
|
||||||
|
*/
|
||||||
|
void activeStreamingServicesUpdated(in List<StreamingServiceInfo> services);
|
||||||
|
}
|
||||||
30
telephony/java/android/telephony/mbms/IStreamingServiceListener.aidl
Executable file
30
telephony/java/android/telephony/mbms/IStreamingServiceListener.aidl
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* 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.net.Uri;
|
||||||
|
import android.telephony.SignalStrength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
oneway interface IStreamingServiceListener {
|
||||||
|
void error(int errorCode, String message);
|
||||||
|
void stateUpdated(int state);
|
||||||
|
void uriUpdated(in Uri uri);
|
||||||
|
void signalStrengthUpdated(in SignalStrength signalStrength);
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* 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 java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class with Cell-Broadcast service information.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class MbmsDownloadManagerListener extends IMbmsDownloadManagerListener.Stub {
|
||||||
|
|
||||||
|
public final static int ERROR_CARRIER_NOT_SUPPORTED = 1;
|
||||||
|
public final static int ERROR_UNABLE_TO_INITIALIZE = 2;
|
||||||
|
public final static int ERROR_UNABLE_TO_ALLOCATE_MEMORY = 3;
|
||||||
|
|
||||||
|
|
||||||
|
public void error(int errorCode, String message) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate published File Services have changed.
|
||||||
|
*
|
||||||
|
* This will only be called after the application has requested
|
||||||
|
* a list of file services and specified a service class list
|
||||||
|
* of interest AND the results of a subsequent getFileServices
|
||||||
|
* call with the same service class list would return different
|
||||||
|
* results.
|
||||||
|
*
|
||||||
|
* @param services a List of FileServiceInfos
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void fileServicesUpdated(List<FileServiceInfo> services) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* 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 java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class with Cell-Broadcast service information.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class MbmsStreamingManagerListener extends IMbmsStreamingManagerListener.Stub {
|
||||||
|
|
||||||
|
public final static int ERROR_CARRIER_NOT_SUPPORTED = 1;
|
||||||
|
public final static int ERROR_UNABLE_TO_INITIALIZE = 2;
|
||||||
|
public final static int ERROR_UNABLE_TO_ALLOCATE_MEMORY = 3;
|
||||||
|
|
||||||
|
|
||||||
|
public void error(int errorCode, 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.
|
||||||
|
*
|
||||||
|
* @param services a List of StreamingServiceInfos
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void streamingServicesUpdated(List<StreamingServiceInfo> services) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate the active Streaming Services have changed.
|
||||||
|
*
|
||||||
|
* This will be caused whenever a new service starts streaming or whenever
|
||||||
|
* MbmsStreamServiceManager.getActiveStreamingServices is called.
|
||||||
|
*
|
||||||
|
* @param services a list of StreamingServiceInfos. May be empty if
|
||||||
|
* there are no active StreamingServices
|
||||||
|
*/
|
||||||
|
public void activeStreamingServicesUpdated(List<StreamingServiceInfo> services) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
}
|
||||||
20
telephony/java/android/telephony/mbms/ServiceInfo.aidl
Executable file
20
telephony/java/android/telephony/mbms/ServiceInfo.aidl
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 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;
|
||||||
|
|
||||||
|
parcelable ServiceInfo;
|
||||||
134
telephony/java/android/telephony/mbms/ServiceInfo.java
Normal file
134
telephony/java/android/telephony/mbms/ServiceInfo.java
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
/*
|
||||||
|
* 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.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class with Cell-Broadcast service information.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class ServiceInfo implements Parcelable {
|
||||||
|
// arbitrary limit on the number of locale -> name pairs we support
|
||||||
|
final static int MAP_LIMIT = 50;
|
||||||
|
/**
|
||||||
|
* User displayable names listed by language. Unmodifiable.
|
||||||
|
*/
|
||||||
|
final Map<Locale, String> names;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The class name for this service - used to catagorize and filter
|
||||||
|
*/
|
||||||
|
final String className;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The language for this service content
|
||||||
|
*/
|
||||||
|
final Locale locale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The carrier's identifier for the service.
|
||||||
|
*/
|
||||||
|
final String serviceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The start time indicating when this service will be available.
|
||||||
|
*/
|
||||||
|
final Date sessionStartTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The end time indicating when this sesion stops being available.
|
||||||
|
*/
|
||||||
|
final Date sessionEndTime;
|
||||||
|
|
||||||
|
|
||||||
|
public ServiceInfo(Map<Locale, String> newNames, String newClassName, Locale newLocale,
|
||||||
|
String newServiceId, Date start, Date end) {
|
||||||
|
if (newNames == null || newNames.isEmpty() || TextUtils.isEmpty(newClassName)
|
||||||
|
|| newLocale == null || TextUtils.isEmpty(newServiceId)
|
||||||
|
|| start == null || end == null) {
|
||||||
|
throw new IllegalArgumentException("Bad ServiceInfo construction");
|
||||||
|
}
|
||||||
|
if (newNames.size() > MAP_LIMIT) {
|
||||||
|
throw new RuntimeException("bad map length" + newNames.size());
|
||||||
|
}
|
||||||
|
names = new HashMap(newNames.size());
|
||||||
|
names.putAll(newNames);
|
||||||
|
className = newClassName;
|
||||||
|
locale = (Locale)newLocale.clone();
|
||||||
|
serviceId = newServiceId;
|
||||||
|
sessionStartTime = (Date)start.clone();
|
||||||
|
sessionEndTime = (Date)end.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<FileServiceInfo> CREATOR =
|
||||||
|
new Parcelable.Creator<FileServiceInfo>() {
|
||||||
|
@Override
|
||||||
|
public FileServiceInfo createFromParcel(Parcel source) {
|
||||||
|
return new FileServiceInfo(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileServiceInfo[] newArray(int size) {
|
||||||
|
return new FileServiceInfo[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ServiceInfo(Parcel in) {
|
||||||
|
int mapCount = in.readInt();
|
||||||
|
if (mapCount > MAP_LIMIT || mapCount < 0) {
|
||||||
|
throw new RuntimeException("bad map length" + mapCount);
|
||||||
|
}
|
||||||
|
names = new HashMap(mapCount);
|
||||||
|
while (mapCount-- > 0) {
|
||||||
|
Locale locale = (java.util.Locale) in.readSerializable();
|
||||||
|
String name = in.readString();
|
||||||
|
names.put(locale, name);
|
||||||
|
}
|
||||||
|
className = in.readString();
|
||||||
|
locale = (java.util.Locale) in.readSerializable();
|
||||||
|
serviceId = in.readString();
|
||||||
|
sessionStartTime = (java.util.Date) in.readSerializable();
|
||||||
|
sessionEndTime = (java.util.Date) in.readSerializable();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
Set<Locale> keySet = names.keySet();
|
||||||
|
dest.writeInt(keySet.size());
|
||||||
|
for (Locale l : keySet) {
|
||||||
|
dest.writeSerializable(l);
|
||||||
|
dest.writeString(names.get(l));
|
||||||
|
}
|
||||||
|
dest.writeString(className);
|
||||||
|
dest.writeSerializable(locale);
|
||||||
|
dest.writeString(serviceId);
|
||||||
|
dest.writeSerializable(sessionStartTime);
|
||||||
|
dest.writeSerializable(sessionEndTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
telephony/java/android/telephony/mbms/StreamingService.aidl
Executable file
19
telephony/java/android/telephony/mbms/StreamingService.aidl
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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;
|
||||||
|
|
||||||
|
parcelable StreamingService;
|
||||||
98
telephony/java/android/telephony/mbms/StreamingService.java
Normal file
98
telephony/java/android/telephony/mbms/StreamingService.java
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* 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.net.Uri;
|
||||||
|
import android.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
import android.telephony.SignalStrength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class StreamingService {
|
||||||
|
|
||||||
|
public final static int STATE_STOPPED = 1;
|
||||||
|
public final static int STATE_STARTED = 2;
|
||||||
|
public final static int STATE_STALLED = 3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
StreamingService(StreamingServiceInfo streamingServiceInfo,
|
||||||
|
IStreamingServiceListener listener) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retreive the Uri used to play this stream
|
||||||
|
*/
|
||||||
|
public Uri getPlaybackUri() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retreive the info for this StreamingService.
|
||||||
|
*/
|
||||||
|
public StreamingServiceInfo getInfo() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retreive the current state of this stream.
|
||||||
|
*/
|
||||||
|
public int getState() {
|
||||||
|
return STATE_STOPPED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stop streaming this service. Terminal.
|
||||||
|
*/
|
||||||
|
public void stopStreaming() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Switch this stream to a different service. Used for smooth transitions.
|
||||||
|
*/
|
||||||
|
public void switchStream(StreamingServiceInfo streamingServiceInfo) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dispose() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<StreamingService> CREATOR =
|
||||||
|
new Parcelable.Creator<StreamingService>() {
|
||||||
|
@Override
|
||||||
|
public StreamingService createFromParcel(Parcel in) {
|
||||||
|
return new StreamingService(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StreamingService[] newArray(int size) {
|
||||||
|
return new StreamingService[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
private StreamingService(Parcel in) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
20
telephony/java/android/telephony/mbms/StreamingServiceInfo.aidl
Executable file
20
telephony/java/android/telephony/mbms/StreamingServiceInfo.aidl
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
**
|
||||||
|
** Copyright 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;
|
||||||
|
|
||||||
|
parcelable StreamingServiceInfo;
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* 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.os.Parcel;
|
||||||
|
import android.os.Parcelable;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Parcelable class Cell-Broadcast media stream information.
|
||||||
|
* This may not have any more info than ServiceInfo, but kept for completeness.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class StreamingServiceInfo extends ServiceInfo implements Parcelable {
|
||||||
|
|
||||||
|
public StreamingServiceInfo(Map<Locale, String> newNames, String newClassName,
|
||||||
|
Locale newLocale, String newServiceId, Date start, Date end) {
|
||||||
|
super(newNames, newClassName, newLocale, newServiceId, start, end);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final Parcelable.Creator<StreamingServiceInfo> CREATOR =
|
||||||
|
new Parcelable.Creator<StreamingServiceInfo>() {
|
||||||
|
@Override
|
||||||
|
public StreamingServiceInfo createFromParcel(Parcel source) {
|
||||||
|
return new StreamingServiceInfo(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StreamingServiceInfo[] newArray(int size) {
|
||||||
|
return new StreamingServiceInfo[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
StreamingServiceInfo(Parcel in) {
|
||||||
|
super(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
|
super.writeToParcel(dest, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int describeContents() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
/*
|
||||||
|
* 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.net.Uri;
|
||||||
|
import android.telephony.SignalStrength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Callback class for use when the applicaiton is actively streaming content.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public class StreamingServiceListener extends IStreamingServiceListener.Stub {
|
||||||
|
|
||||||
|
|
||||||
|
public void error(int errorCode, String message) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate this stream has changed state.
|
||||||
|
*
|
||||||
|
* See {@link StreamingService#STATE_STOPPED}, {@link StreamingService#STATE_STARTED}
|
||||||
|
* and {@link StreamingService#STATE_STALLED}.
|
||||||
|
*/
|
||||||
|
public void stateUpdated(int state) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to indicate published Download Services have changed.
|
||||||
|
*
|
||||||
|
* This may be called when a looping stream hits the end or
|
||||||
|
* when the a new URI should be used to correct for time drift.
|
||||||
|
*/
|
||||||
|
public void uriUpdated(Uri uri) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signal Strength updated.
|
||||||
|
*
|
||||||
|
* This signal strength is the BROADCAST signal strength which,
|
||||||
|
* depending on technology in play and it's deployment, may be
|
||||||
|
* stronger or weaker than the traditional UNICAST signal
|
||||||
|
* strength.
|
||||||
|
*
|
||||||
|
* A {@link android.telephony.SignalStrength#getLevel} result of 0 means
|
||||||
|
* you don't have coverage for this stream, either due to geographic
|
||||||
|
* restrictions, poor tower coverage or something (yards of concrete?)
|
||||||
|
* interferring with the signal.
|
||||||
|
*/
|
||||||
|
public void signalStrengthUpdated(SignalStrength signalStrength) {
|
||||||
|
// default implementation empty
|
||||||
|
}
|
||||||
|
}
|
||||||
73
telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl
vendored
Executable file
73
telephony/java/android/telephony/mbms/vendor/IMbmsDownloadService.aidl
vendored
Executable file
@@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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.vendor;
|
||||||
|
|
||||||
|
import android.app.PendingIntent;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.telephony.mbms.DownloadRequest;
|
||||||
|
import android.telephony.mbms.DownloadStatus;
|
||||||
|
import android.telephony.mbms.IMbmsDownloadManagerListener;
|
||||||
|
import android.telephony.mbms.IDownloadListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The interface the opaque MbmsStreamingService will satisfy.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
interface IMbmsDownloadService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initialize download service
|
||||||
|
* Registers this listener, subId with this appName
|
||||||
|
*
|
||||||
|
* No return value. Async errors may be reported, but none expected (not doing anything yet).
|
||||||
|
*/
|
||||||
|
void initialize(String appName, int subId, IMbmsDownloadManagerListener listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - Registers serviceClasses of interest with the uid/appName/subId key.
|
||||||
|
* - Starts asynch fetching data on download services of matching classes to be reported
|
||||||
|
* later by callback.
|
||||||
|
*
|
||||||
|
* Note that subsequent calls with the same callback, appName, subId and uid will replace
|
||||||
|
* the service class list.
|
||||||
|
*/
|
||||||
|
int getFileServices(String appName, int subId, in List<String> serviceClasses);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* should move the params into a DownloadRequest parcelable
|
||||||
|
*/
|
||||||
|
int download(in DownloadRequest downloadRequest, IDownloadListener listener);
|
||||||
|
|
||||||
|
List<DownloadRequest> listPendingDownloads();
|
||||||
|
|
||||||
|
int cancelDownload(in DownloadRequest downloadRequest);
|
||||||
|
|
||||||
|
DownloadStatus getDownloadStatus(in DownloadRequest downloadRequest);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* named this for 2 reasons:
|
||||||
|
* 1 don't want 'State' here as it conflicts with 'Status' of the previous function
|
||||||
|
* 2 want to perfect typing 'Knowledge'
|
||||||
|
*/
|
||||||
|
void resetDownloadKnowledge(in DownloadRequest downloadRequest);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* End of life for this MbmsDownloadManager.
|
||||||
|
* Any pending downloads remain in affect and may start up independently in the future.
|
||||||
|
*/
|
||||||
|
void dispose(String appName, int subId);
|
||||||
|
}
|
||||||
88
telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl
vendored
Executable file
88
telephony/java/android/telephony/mbms/vendor/IMbmsStreamingService.aidl
vendored
Executable file
@@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
** Copyright 2017, 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.vendor;
|
||||||
|
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.telephony.mbms.IMbmsStreamingManagerListener;
|
||||||
|
import android.telephony.mbms.IStreamingServiceListener;
|
||||||
|
import android.telephony.mbms.StreamingService;
|
||||||
|
import android.telephony.mbms.StreamingServiceInfo;
|
||||||
|
import android.telephony.SignalStrength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The interface the opaque MbmsStreamingService will satisfy.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
interface IMbmsStreamingService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initialize streaming service
|
||||||
|
* Registers this listener, subId with this appName
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int initialize(IMbmsStreamingManagerListener listener, String appName, int subId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - Registers serviceClasses of interest with the uid/appName/subId key.
|
||||||
|
* - Starts asynch fetching data on streaming services of matching classes to be reported
|
||||||
|
* later by callback.
|
||||||
|
*
|
||||||
|
* Note that subsequent calls with the same callback, appName, subId and uid will replace
|
||||||
|
* the service class list.
|
||||||
|
*/
|
||||||
|
int getStreamingServices(String appName, int subId, in List<String> serviceClasses);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - Starts streaming the serviceId given.
|
||||||
|
* - if the uid/appName/subId don't match a previously registered callback an error will
|
||||||
|
* be returned
|
||||||
|
* - Streaming status will be sent via the included listener, including an initial
|
||||||
|
* URL-change and State-change pair.
|
||||||
|
*/
|
||||||
|
StreamingService startStreaming(String appName, int subId, String serviceId,
|
||||||
|
IStreamingServiceListener listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asynchronously fetches all Services being streamed by this uid/appName/subId.
|
||||||
|
*/
|
||||||
|
int getActiveStreamingServices(String appName, int subId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Per-stream api. Note each specifies what stream they apply to.
|
||||||
|
*/
|
||||||
|
|
||||||
|
Uri getPlaybackUri(String appName, int subId, String serviceId);
|
||||||
|
|
||||||
|
void switchStreams(String appName, int subId, String oldServiceId, String newServiceId);
|
||||||
|
|
||||||
|
int getState(String appName, int subId, String serviceId);
|
||||||
|
|
||||||
|
void stopStreaming(String appName, int subId, String serviceId);
|
||||||
|
|
||||||
|
void disposeStream(String appName, int subId, String serviceId);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* End of life for all MbmsStreamingManager's created by this uid/appName/subId.
|
||||||
|
* Ends any streams run under this uid/appname/subId and calls the disposed methods
|
||||||
|
* an callbacks registered for this uid/appName/subId and the disposed methods on any
|
||||||
|
* listeners registered with startStreaming.
|
||||||
|
*/
|
||||||
|
void dispose(String appName, int subId);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user