本文整理汇总了Java中android.media.tv.TvContract.buildProgramsUriForChannel方法的典型用法代码示例。如果您正苦于以下问题:Java TvContract.buildProgramsUriForChannel方法的具体用法?Java TvContract.buildProgramsUriForChannel怎么用?Java TvContract.buildProgramsUriForChannel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.media.tv.TvContract
的用法示例。
在下文中一共展示了TvContract.buildProgramsUriForChannel方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getPrograms
import android.media.tv.TvContract; //导入方法依赖的package包/类
public static List<Program> getPrograms(ContentResolver resolver, Uri channelUri) {
Uri uri = TvContract.buildProgramsUriForChannel(channelUri);
List<Program> programs = new ArrayList<>();
// TvProvider returns programs in chronological order by default.
try (Cursor cursor = resolver.query(uri, null, null, null, null)) {
if (cursor == null || cursor.getCount() == 0) {
return programs;
}
while (cursor.moveToNext()) {
programs.add(Program.fromCursor(cursor));
}
} catch (Exception e) {
Log.w(TAG, "Unable to get programs for " + channelUri, e);
}
return programs;
}
示例2: getProgramAt
import android.media.tv.TvContract; //导入方法依赖的package包/类
/**
* Gets the info of the program on particular time.
*/
@WorkerThread
public static Program getProgramAt(Context context, long channelId, long timeMs) {
if (channelId == Channel.INVALID_ID) {
Log.e(TAG, "getCurrentProgramAt - channelId is invalid");
return null;
}
if (context.getMainLooper().getThread().equals(Thread.currentThread())) {
String message = "getCurrentProgramAt called on main thread";
if (DEBUG) {
// Generating a stack trace can be expensive, only do it in debug mode.
Log.w(TAG, message, new IllegalStateException(message));
} else {
Log.w(TAG, message);
}
}
Uri uri = TvContract.buildProgramsUriForChannel(TvContract.buildChannelUri(channelId),
timeMs, timeMs);
try (Cursor cursor = context.getContentResolver().query(uri, Program.PROJECTION,
null, null, null)) {
if (cursor != null && cursor.moveToNext()) {
return Program.fromCursor(cursor);
}
}
return null;
}
示例3: getRecordedProgram
import android.media.tv.TvContract; //导入方法依赖的package包/类
private Program getRecordedProgram() {
ContentResolver resolver = mContext.getContentResolver();
Uri programUri = mProgramUri;
if (mProgramUri == null) {
long avg = mRecordStartTime / 2 + mRecordEndTime / 2;
programUri = TvContract.buildProgramsUriForChannel(mChannel.getChannelId(), avg, avg);
}
try (Cursor c = resolver.query(programUri, Program.PROJECTION, null, null, SORT_BY_TIME)) {
if (c != null) {
Program result = Program.onQuery(c);
if (DEBUG) {
Log.v(TAG, "Finished query for " + this);
}
return result;
} else {
if (c == null) {
Log.e(TAG, "Unknown query error for " + this);
} else {
if (DEBUG) Log.d(TAG, "Canceled query for " + this);
}
return null;
}
}
}
示例4: getPrograms
import android.media.tv.TvContract; //导入方法依赖的package包/类
public static List<Program> getPrograms(ContentResolver resolver, Uri channelUri) {
Uri uri = TvContract.buildProgramsUriForChannel(channelUri);
Cursor cursor = null;
List<Program> programs = new ArrayList<>();
try {
// TvProvider returns programs chronological order by default.
cursor = resolver.query(uri, null, null, null, null);
if (cursor == null || cursor.getCount() == 0) {
return programs;
}
while (cursor.moveToNext()) {
programs.add(Program.fromCursor(cursor));
}
} catch (Exception e) {
Log.w(TAG, "Unable to get programs for " + channelUri, e);
} finally {
if (cursor != null) {
cursor.close();
}
}
return programs;
}
示例5: getLastProgramEndTimeMillis
import android.media.tv.TvContract; //导入方法依赖的package包/类
public static long getLastProgramEndTimeMillis(ContentResolver resolver, Uri channelUri) {
Uri uri = TvContract.buildProgramsUriForChannel(channelUri);
String[] projection = {Programs.COLUMN_END_TIME_UTC_MILLIS};
Cursor cursor = null;
try {
// TvProvider returns programs chronological order by default.
cursor = resolver.query(uri, projection, null, null, null);
if (cursor == null || cursor.getCount() == 0) {
return 0;
}
cursor.moveToLast();
return cursor.getLong(0);
} catch (Exception e) {
Log.w(TAG, "Unable to get last program end time for " + channelUri, e);
} finally {
if (cursor != null) {
cursor.close();
}
}
return 0;
}
示例6: getPrograms
import android.media.tv.TvContract; //导入方法依赖的package包/类
/**
* Finds already existing programs for a given channel
* @param mContext The context of this application
* @param channelUri The URI of the channel
* @return
*/
public List<Program> getPrograms(Context mContext, Uri channelUri) {
ContentResolver resolver = mContext.getContentResolver();
Uri uri = TvContract.buildProgramsUriForChannel(channelUri);
Cursor cursor = null;
List<Program> programs = new ArrayList<>();
try {
// TvProvider returns programs chronological order by default.
cursor = resolver.query(uri, null, null, null, null);
if (cursor == null || cursor.getCount() == 0) {
return programs;
}
while (cursor.moveToNext()) {
programs.add(Program.fromCursor(cursor));
}
} catch (Exception e) {
Log.w(TAG, "Unable to get programs for " + channelUri, e);
} finally {
if (cursor != null) {
cursor.close();
}
}
return programs;
}
示例7: checkifExist
import android.media.tv.TvContract; //导入方法依赖的package包/类
/**
* This method is used to check if the current event is already present in the DB
*
* @param program Program to check in DB
* @return True if the program is present in the DB, false otherwise
*/
protected boolean checkifExist(long channelID, long startTime, long endTime) {
Uri uri = TvContract.buildProgramsUriForChannel(channelID, startTime, endTime);
Cursor cursor = mContext.getContentResolver().query(uri, projection, null, null, null);
if (cursor == null || cursor.getCount() == 0) {
cursor.close();
mLog.w("[checkifExist][item does not exist in DB][[uri: " + uri.toString() + "]");
return false;
} else {
cursor.close();
return true;
}
/**
* TODO Implement program update
*/
}
示例8: fillProgramInfo
import android.media.tv.TvContract; //导入方法依赖的package包/类
/**
* Replaces the channel information - title, description, channel logo - with the current
* program information of the channel if the current program information exists and it is not
* blocked.
*/
@WorkerThread
private void fillProgramInfo(SearchResult result) {
long now = System.currentTimeMillis();
Uri uri = TvContract.buildProgramsUriForChannel(result.channelId, now, now);
String[] projection = new String[] {
Programs.COLUMN_TITLE,
Programs.COLUMN_POSTER_ART_URI,
Programs.COLUMN_CONTENT_RATING,
Programs.COLUMN_VIDEO_WIDTH,
Programs.COLUMN_VIDEO_HEIGHT,
Programs.COLUMN_START_TIME_UTC_MILLIS,
Programs.COLUMN_END_TIME_UTC_MILLIS
};
try (Cursor c = mContentResolver.query(uri, projection, null, null, null)) {
if (c != null && c.moveToNext() && !isRatingBlocked(c.getString(2))) {
String channelName = result.title;
long startUtcMillis = c.getLong(5);
long endUtcMillis = c.getLong(6);
result.title = c.getString(0);
result.description = buildProgramDescription(result.channelNumber, channelName,
startUtcMillis, endUtcMillis);
String imageUri = c.getString(1);
if (imageUri != null) {
result.imageUri = imageUri;
}
result.videoWidth = c.getInt(3);
result.videoHeight = c.getInt(4);
result.duration = endUtcMillis - startUtcMillis;
result.progressPercentage = getProgressPercentage(startUtcMillis, endUtcMillis);
}
}
}
示例9: LoadProgramsForChannelTask
import android.media.tv.TvContract; //导入方法依赖的package包/类
public LoadProgramsForChannelTask(ContentResolver contentResolver, long channelId,
@Nullable Range<Long> period) {
super(contentResolver, period == null
? TvContract.buildProgramsUriForChannel(channelId)
: TvContract.buildProgramsUriForChannel(channelId, period.getLower(),
period.getUpper()),
null, null, null, null);
mPeriod = period;
mChannelId = channelId;
}
示例10: getAllProgramsForChannel
import android.media.tv.TvContract; //导入方法依赖的package包/类
private List<EitItem> getAllProgramsForChannel(TunerChannel channel, @Nullable Long startTimeMs,
@Nullable Long endTimeMs) {
List<EitItem> items = new ArrayList<>();
long channelId = channel.getChannelId();
Uri programsUri = (startTimeMs == null || endTimeMs == null) ?
TvContract.buildProgramsUriForChannel(channelId) :
TvContract.buildProgramsUriForChannel(channelId, startTimeMs, endTimeMs);
try (Cursor cursor = mContext.getContentResolver().query(programsUri,
ALL_PROGRAMS_SELECTION_ARGS, null, null, null)) {
if (cursor != null && cursor.moveToFirst()) {
do {
long id = cursor.getLong(0);
String titleText = cursor.getString(1);
long startTime = ConvertUtils.convertUnixEpochToGPSTime(
cursor.getLong(2) / DateUtils.SECOND_IN_MILLIS);
long endTime = ConvertUtils.convertUnixEpochToGPSTime(
cursor.getLong(3) / DateUtils.SECOND_IN_MILLIS);
int lengthInSecond = (int) (endTime - startTime);
String contentRating = cursor.getString(4);
String broadcastGenre = cursor.getString(5);
String canonicalGenre = cursor.getString(6);
String description = cursor.getString(7);
int eventId = cursor.getInt(8);
EitItem eitItem = new EitItem(id, eventId, titleText, startTime, lengthInSecond,
contentRating, null, null, broadcastGenre, canonicalGenre, description);
items.add(eitItem);
} while (cursor.moveToNext());
}
}
return items;
}
示例11: getLastProgramEndTimeMs
import android.media.tv.TvContract; //导入方法依赖的package包/类
private static long getLastProgramEndTimeMs(
Context context, Uri channelUri, long startTimeMs, long endTimeMs) {
Uri uri = TvContract.buildProgramsUriForChannel(channelUri, startTimeMs, endTimeMs);
String[] projection = {Programs.COLUMN_END_TIME_UTC_MILLIS};
try (Cursor cursor =
context.getContentResolver().query(uri, projection, null, null, null)) {
if (cursor != null && cursor.moveToLast()) {
return cursor.getLong(0);
}
}
return 0;
}
示例12: getPrograms
import android.media.tv.TvContract; //导入方法依赖的package包/类
/**
* Returns the current list of programs on a given channel.
*
* @param resolver Application's ContentResolver.
* @param channelUri Channel's Uri.
* @return List of programs.
* @hide
*/
public static List<Program> getPrograms(ContentResolver resolver, Uri channelUri) {
if (channelUri == null) {
return null;
}
Uri uri = TvContract.buildProgramsUriForChannel(channelUri);
List<Program> programs = new ArrayList<>();
// TvProvider returns programs in chronological order by default.
Cursor cursor = null;
try {
cursor = resolver.query(uri, Program.PROJECTION, null, null, null);
if (cursor == null || cursor.getCount() == 0) {
return programs;
}
while (cursor.moveToNext()) {
programs.add(Program.fromCursor(cursor));
}
} catch (Exception e) {
Log.w(TAG, "Unable to get programs for " + channelUri, e);
} finally {
if (cursor != null) {
cursor.close();
}
}
return programs;
}
示例13: createSqlParams
import android.media.tv.TvContract; //导入方法依赖的package包/类
private SqlParams createSqlParams() {
SqlParams sqlParams = new SqlParams();
if (PermissionUtils.hasAccessAllEpg(mContext)) {
sqlParams.uri = Programs.CONTENT_URI;
// Base
StringBuilder selection = new StringBuilder(mLoadCurrentProgram
? PROGRAM_PREDICATE_WITH_CURRENT_PROGRAM : PROGRAM_PREDICATE);
List<String> args = new ArrayList<>();
args.add(Long.toString(System.currentTimeMillis()));
// Channel option
if (!mQueryAllChannels) {
selection.append(" AND ").append(CHANNEL_ID_PREDICATE);
args.add(Long.toString(mSeriesRecordings.get(0).getChannelId()));
}
// Title
if (mSeriesRecordings.size() == 1) {
selection.append(" AND ").append(PROGRAM_TITLE_PREDICATE);
args.add(mSeriesRecordings.get(0).getTitle());
}
sqlParams.selection = selection.toString();
sqlParams.selectionArgs = args.toArray(new String[args.size()]);
sqlParams.filter = new SeriesRecordingCursorFilter(mSeriesRecordings);
} else {
// The query includes the current program. Will be filtered if needed.
if (mQueryAllChannels) {
sqlParams.uri = Programs.CONTENT_URI.buildUpon()
.appendQueryParameter(PARAM_START_TIME,
String.valueOf(System.currentTimeMillis()))
.appendQueryParameter(PARAM_END_TIME, String.valueOf(Long.MAX_VALUE))
.build();
} else {
sqlParams.uri = TvContract.buildProgramsUriForChannel(
mSeriesRecordings.get(0).getChannelId(),
System.currentTimeMillis(), Long.MAX_VALUE);
}
sqlParams.selection = null;
sqlParams.selectionArgs = null;
sqlParams.filter = new SeriesRecordingCursorFilterForNonSystem(mSeriesRecordings);
}
return sqlParams;
}
示例14: UpdateCurrentProgramForChannelTask
import android.media.tv.TvContract; //导入方法依赖的package包/类
private UpdateCurrentProgramForChannelTask(ContentResolver contentResolver, long channelId,
long time) {
super(contentResolver, TvContract.buildProgramsUriForChannel(channelId, time, time),
Program.PROJECTION, null, null, SORT_BY_TIME);
mChannelId = channelId;
}
示例15: performSync
import android.media.tv.TvContract; //导入方法依赖的package包/类
public void performSync(TvInputProvider provider, String inputId) {
Log.d(TAG, "Actually begin the sync");
List<Channel> allChannels = provider.getAllChannels(getContext());
if(allChannels == null) {
//You have no channels!!
return;
}
Log.d(TAG, allChannels.toString());
for (int i = 0; i < allChannels.size(); i++) {
if (allChannels.get(i).getOriginalNetworkId() == 0)
allChannels.get(i).setOriginalNetworkId(i + 1);
if (allChannels.get(i).getTransportStreamId() == 0)
allChannels.get(i).setTransportStreamId(i + 1);
}
TvContractUtils.updateChannels(getContext(), inputId, allChannels);
LongSparseArray<Channel> channelMap = TvContractUtils.buildChannelMap(
mContext.getContentResolver(), inputId, allChannels);
if (channelMap == null) {
Log.d(TAG, "?");
Handler h = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Toast.makeText(getContext(), "Couldn't find any channels. Uh-oh.", Toast.LENGTH_SHORT).show();
}
};
h.sendEmptyMessage(0);
//Let's not continue running
return;
}
long startMs = new Date().getTime();
long endMs = startMs + FULL_SYNC_WINDOW_SEC * 1000;
Log.d(TAG, "Now start to get programs");
for (int i = 0; i < channelMap.size(); ++i) {
Uri channelUri = TvContract.buildChannelUri(channelMap.keyAt(i));
List<Program> programList = provider.getProgramsForChannel(getContext(), channelUri, channelMap.valueAt(i), startMs, endMs);
Log.d(TAG, "Okay, we NEED to set the channel id first");
for(Program p: programList) {
p.setChannelId(channelMap.keyAt(i));
}
Log.d(TAG, "For " + channelMap.valueAt(i).toString());
Log.d(TAG, programList.toString());
updatePrograms(channelUri, programList);
//Let's double check programs
Uri programEditor = TvContract.buildProgramsUriForChannel(channelUri);
}
Log.d(TAG, "Sync performed");
}