当前位置: 首页>>代码示例>>Java>>正文


Java TvContract.buildProgramsUriForChannel方法代码示例

本文整理汇总了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;
}
 
开发者ID:nejtv,项目名称:androidtv-sample,代码行数:17,代码来源:TvContractUtils.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:29,代码来源:Utils.java

示例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;
        }
    }
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:25,代码来源:TunerRecordingSessionWorker.java

示例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;
}
 
开发者ID:Fleker,项目名称:ChannelSurfer,代码行数:23,代码来源:TvContractUtils.java

示例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;
}
 
开发者ID:Fleker,项目名称:ChannelSurfer,代码行数:22,代码来源:TvContractUtils.java

示例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;
}
 
开发者ID:Fleker,项目名称:ChannelSurfer,代码行数:30,代码来源:TvInputProvider.java

示例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
     */
}
 
开发者ID:iWedia,项目名称:iWediaSimpleTvInputService,代码行数:22,代码来源:EpgRunnable.java

示例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);
        }
    }
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:39,代码来源:TvProviderSearch.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:11,代码来源:AsyncDbTask.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:32,代码来源:ChannelDataManager.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:13,代码来源:ProgramUtils.java

示例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;
}
 
开发者ID:googlesamples,项目名称:androidtv-sample-inputs,代码行数:35,代码来源:TvContractUtils.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:42,代码来源:EpisodicProgramLoadTask.java

示例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;
}
 
开发者ID:trevd,项目名称:android_packages_apps_tv,代码行数:7,代码来源:ProgramDataManager.java

示例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");
}
 
开发者ID:Fleker,项目名称:ChannelSurfer,代码行数:50,代码来源:SyncAdapter.java


注:本文中的android.media.tv.TvContract.buildProgramsUriForChannel方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。