Merge "Mark DVB methods and classes as System APIs."
This commit is contained in:
@@ -3972,6 +3972,15 @@ package android.media.soundtrigger {
|
|||||||
|
|
||||||
package android.media.tv {
|
package android.media.tv {
|
||||||
|
|
||||||
|
public final class DvbDeviceInfo implements android.os.Parcelable {
|
||||||
|
ctor public DvbDeviceInfo(int, int);
|
||||||
|
method public int describeContents();
|
||||||
|
method public int getAdapterId();
|
||||||
|
method public int getDeviceId();
|
||||||
|
method public void writeToParcel(@NonNull android.os.Parcel, int);
|
||||||
|
field @NonNull public static final android.os.Parcelable.Creator<android.media.tv.DvbDeviceInfo> CREATOR;
|
||||||
|
}
|
||||||
|
|
||||||
public final class TvContentRatingSystemInfo implements android.os.Parcelable {
|
public final class TvContentRatingSystemInfo implements android.os.Parcelable {
|
||||||
method public static android.media.tv.TvContentRatingSystemInfo createTvContentRatingSystemInfo(int, android.content.pm.ApplicationInfo);
|
method public static android.media.tv.TvContentRatingSystemInfo createTvContentRatingSystemInfo(int, android.content.pm.ApplicationInfo);
|
||||||
method public int describeContents();
|
method public int describeContents();
|
||||||
@@ -4086,12 +4095,14 @@ package android.media.tv {
|
|||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating);
|
||||||
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
|
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig);
|
||||||
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
|
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List<android.media.tv.TvStreamConfig> getAvailableTvStreamConfigList(String);
|
||||||
|
method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List<android.media.tv.DvbDeviceInfo> getDvbDeviceList();
|
||||||
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
|
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List<android.media.tv.TvInputHardwareInfo> getHardwareList();
|
||||||
method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
|
method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List<android.media.tv.TvContentRatingSystemInfo> getTvContentRatingSystemList();
|
||||||
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean isSingleSessionActive();
|
method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean isSingleSessionActive();
|
||||||
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramAddedToWatchNext(String, long, long);
|
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramAddedToWatchNext(String, long, long);
|
||||||
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramBrowsableDisabled(String, long);
|
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyPreviewProgramBrowsableDisabled(String, long);
|
||||||
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyWatchNextProgramBrowsableDisabled(String, long);
|
method @RequiresPermission(android.Manifest.permission.NOTIFY_TV_INPUTS) public void notifyWatchNextProgramBrowsableDisabled(String, long);
|
||||||
|
method @Nullable @RequiresPermission("android.permission.DVB_DEVICE") public android.os.ParcelFileDescriptor openDvbDevice(@NonNull android.media.tv.DvbDeviceInfo, int);
|
||||||
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
|
method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public void releaseTvInputHardware(int, android.media.tv.TvInputManager.Hardware);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void removeBlockedRating(@NonNull android.media.tv.TvContentRating);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void removeBlockedRating(@NonNull android.media.tv.TvContentRating);
|
||||||
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void setParentalControlsEnabled(boolean);
|
method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void setParentalControlsEnabled(boolean);
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package android.media.tv;
|
package android.media.tv;
|
||||||
|
|
||||||
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.SystemApi;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -26,10 +28,11 @@ import android.util.Log;
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
public final class DvbDeviceInfo implements Parcelable {
|
public final class DvbDeviceInfo implements Parcelable {
|
||||||
static final String TAG = "DvbDeviceInfo";
|
static final String TAG = "DvbDeviceInfo";
|
||||||
|
|
||||||
public static final @android.annotation.NonNull Parcelable.Creator<DvbDeviceInfo> CREATOR =
|
public static final @NonNull Parcelable.Creator<DvbDeviceInfo> CREATOR =
|
||||||
new Parcelable.Creator<DvbDeviceInfo>() {
|
new Parcelable.Creator<DvbDeviceInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public DvbDeviceInfo createFromParcel(Parcel source) {
|
public DvbDeviceInfo createFromParcel(Parcel source) {
|
||||||
@@ -86,7 +89,7 @@ public final class DvbDeviceInfo implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||||
dest.writeInt(mAdapterId);
|
dest.writeInt(mAdapterId);
|
||||||
dest.writeInt(mDeviceId);
|
dest.writeInt(mDeviceId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,6 +101,12 @@ public final class TvInputManager {
|
|||||||
*/
|
*/
|
||||||
public static final int DVB_DEVICE_FRONTEND = DVB_DEVICE_END;
|
public static final int DVB_DEVICE_FRONTEND = DVB_DEVICE_END;
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@IntDef({DVB_DEVICE_DEMUX, DVB_DEVICE_DVR, DVB_DEVICE_FRONTEND})
|
||||||
|
public @interface DvbDeviceType {}
|
||||||
|
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@IntDef({VIDEO_UNAVAILABLE_REASON_UNKNOWN, VIDEO_UNAVAILABLE_REASON_TUNING,
|
@IntDef({VIDEO_UNAVAILABLE_REASON_UNKNOWN, VIDEO_UNAVAILABLE_REASON_TUNING,
|
||||||
@@ -1663,6 +1669,9 @@ public final class TvInputManager {
|
|||||||
* @return the list of {@link DvbDeviceInfo} objects representing available DVB devices.
|
* @return the list of {@link DvbDeviceInfo} objects representing available DVB devices.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.DVB_DEVICE)
|
||||||
|
@NonNull
|
||||||
public List<DvbDeviceInfo> getDvbDeviceList() {
|
public List<DvbDeviceInfo> getDvbDeviceList() {
|
||||||
try {
|
try {
|
||||||
return mService.getDvbDeviceList();
|
return mService.getDvbDeviceList();
|
||||||
@@ -1676,19 +1685,24 @@ public final class TvInputManager {
|
|||||||
* {@link DvbDeviceInfo}
|
* {@link DvbDeviceInfo}
|
||||||
*
|
*
|
||||||
* @param info A {@link DvbDeviceInfo} to open a DVB device.
|
* @param info A {@link DvbDeviceInfo} to open a DVB device.
|
||||||
* @param device A DVB device. The DVB device can be {@link #DVB_DEVICE_DEMUX},
|
* @param deviceType A DVB device type. The type can be {@link #DVB_DEVICE_DEMUX},
|
||||||
* {@link #DVB_DEVICE_DVR} or {@link #DVB_DEVICE_FRONTEND}.
|
* {@link #DVB_DEVICE_DVR} or {@link #DVB_DEVICE_FRONTEND}.
|
||||||
* @return a {@link ParcelFileDescriptor} of a specified DVB device for a given
|
* @return a {@link ParcelFileDescriptor} of a specified DVB device for a given
|
||||||
* {@link DvbDeviceInfo}, or {@code null} if the given {@link DvbDeviceInfo} was invalid
|
* {@link DvbDeviceInfo}, or {@code null} if the given {@link DvbDeviceInfo}
|
||||||
* or the specified DVB device was busy with a previous request.
|
* failed to open.
|
||||||
|
* @throws IllegalArgumentException if {@code deviceType} is invalid or the device is not found.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public ParcelFileDescriptor openDvbDevice(DvbDeviceInfo info, int device) {
|
@SystemApi
|
||||||
|
@RequiresPermission(android.Manifest.permission.DVB_DEVICE)
|
||||||
|
@Nullable
|
||||||
|
public ParcelFileDescriptor openDvbDevice(@NonNull DvbDeviceInfo info,
|
||||||
|
@DvbDeviceType int deviceType) {
|
||||||
try {
|
try {
|
||||||
if (DVB_DEVICE_START > device || DVB_DEVICE_END < device) {
|
if (DVB_DEVICE_START > deviceType || DVB_DEVICE_END < deviceType) {
|
||||||
throw new IllegalArgumentException("Invalid DVB device: " + device);
|
throw new IllegalArgumentException("Invalid DVB device: " + deviceType);
|
||||||
}
|
}
|
||||||
return mService.openDvbDevice(info, device);
|
return mService.openDvbDevice(info, deviceType);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1814,8 +1814,8 @@ public final class TvInputManagerService extends SystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ParcelFileDescriptor openDvbDevice(DvbDeviceInfo info, int device)
|
public ParcelFileDescriptor openDvbDevice(DvbDeviceInfo info,
|
||||||
throws RemoteException {
|
@TvInputManager.DvbDeviceType int deviceType) throws RemoteException {
|
||||||
if (mContext.checkCallingPermission(android.Manifest.permission.DVB_DEVICE)
|
if (mContext.checkCallingPermission(android.Manifest.permission.DVB_DEVICE)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
throw new SecurityException("Requires DVB_DEVICE permission");
|
throw new SecurityException("Requires DVB_DEVICE permission");
|
||||||
@@ -1852,7 +1852,7 @@ public final class TvInputManagerService extends SystemService {
|
|||||||
final long identity = Binder.clearCallingIdentity();
|
final long identity = Binder.clearCallingIdentity();
|
||||||
try {
|
try {
|
||||||
String deviceFileName;
|
String deviceFileName;
|
||||||
switch (device) {
|
switch (deviceType) {
|
||||||
case TvInputManager.DVB_DEVICE_DEMUX:
|
case TvInputManager.DVB_DEVICE_DEMUX:
|
||||||
deviceFileName = String.format(dvbDeviceFound
|
deviceFileName = String.format(dvbDeviceFound
|
||||||
? "/dev/dvb/adapter%d/demux%d" : "/dev/dvb%d.demux%d",
|
? "/dev/dvb/adapter%d/demux%d" : "/dev/dvb%d.demux%d",
|
||||||
@@ -1869,14 +1869,14 @@ public final class TvInputManagerService extends SystemService {
|
|||||||
info.getAdapterId(), info.getDeviceId());
|
info.getAdapterId(), info.getDeviceId());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Invalid DVB device: " + device);
|
throw new IllegalArgumentException("Invalid DVB device: " + deviceType);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// The DVB frontend device only needs to be opened in read/write mode, which
|
// The DVB frontend device only needs to be opened in read/write mode, which
|
||||||
// allows performing tuning operations. The DVB demux and DVR device are enough
|
// allows performing tuning operations. The DVB demux and DVR device are enough
|
||||||
// to be opened in read only mode.
|
// to be opened in read only mode.
|
||||||
return ParcelFileDescriptor.open(new File(deviceFileName),
|
return ParcelFileDescriptor.open(new File(deviceFileName),
|
||||||
TvInputManager.DVB_DEVICE_FRONTEND == device
|
TvInputManager.DVB_DEVICE_FRONTEND == deviceType
|
||||||
? ParcelFileDescriptor.MODE_READ_WRITE
|
? ParcelFileDescriptor.MODE_READ_WRITE
|
||||||
: ParcelFileDescriptor.MODE_READ_ONLY);
|
: ParcelFileDescriptor.MODE_READ_ONLY);
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user