简体   繁体   English

getContentResolver().query(TvContract.Channel.CONTENT_URI, 投影, null, null, null) 返回空 cursor

[英]getContentResolver().query(TvContract.Channel.CONTENT_URI, projection, null, null, null) returns empty cursor

I am trying to get all the available channels in TvProvider database (tv.db), with help of the below code.我正在尝试借助以下代码获取 TvProvider 数据库(tv.db)中的所有可用频道。 But the cursor is returning as empty.但是 cursor 返回为空。

val tvInputManager = getSystemService(TvInputManager::class.java)
tvInputManager.registerCallback(tvInputCallback, handler)

if (tvInputManager.tvInputList != null && tvInputManager.tvInputList.size > 0) {
    for (input in tvInputManager.tvInputList) {
        if (input != null && !input.isPassthroughInput) {
            val projection = arrayOf(
                TvContract.Channels._ID,
                TvContract.Channels.COLUMN_DISPLAY_NUMBER
            )
            var tvInputInfo = tvInputManager.getTvInputInfo(input.id)
            var uri = TvContractCompat.buildChannelsUriForInput(tvInputInfo?.id)
            val cursor = contentResolver.query(TvContract.Channels.CONTENT_URI, projection, null, null, null)
            Log.d("CHANNELS_DATA", "${TvContract.Channels.CONTENT_URI}")
            cursor?.moveToFirst()
            Log.d("CHANNELS_DATA", "${cursor?.count} CHANNELS FOUND")
        }
    }
}

Below are the permissions added in the Android Manifest file下面是Android Manifest文件中添加的权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_TV_LISTINGS" />
<uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA" />
<uses-permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS" />

You will get only own channels (channels added by your Tv Input Service).您将只获得自己的频道(由您的电视输入服务添加的频道)。 To be able to list all entries your app should have special ( signatureOrSystem ) permission: ACCESS_ALL_EPG_DATA .为了能够列出所有条目,您的应用程序应该具有特殊 ( signatureOrSystem ) 权限: ACCESS_ALL_EPG_DATA Please check docs: https://source.android.com/devices/tv#permissions_and_access_control请查看文档: https://source.android.com/devices/tv#permissions_and_access_control

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 getContentResolver()。query(Browser.BOOKMARKS_URI返回null - getContentResolver().query(Browser.BOOKMARKS_URI returns null context.getContentResolver()。query(ContactsContract.Data.CONTENT_URI,null,null,null,null); - context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, null , null ,null, null); getcontentresolver()在服务中返回null - getcontentresolver() returns null in a service managedQuery(Media.EXTERNAL_CONTENT_URI,projection,null,null,null); 在设备上运行时返回null - managedQuery(Media.EXTERNAL_CONTENT_URI, projection,null,null, null); returns null when running on device cursor.setNotificationUri() 和 getContentResolver().notifyChange(uri,null) 的区别 - Difference between cursor.setNotificationUri() and getContentResolver().notifyChange(uri,null) getContext()。getContentResolver()。notifyChange(uri,null)没有通知游标 - getContext().getContentResolver().notifyChange(uri, null) didn't notify cursor 来自 getContentResolver() 的光标的空对象 - Null object for cursor from getContentResolver() SQLite查询返回的游标既为null也不为null - SQLite query returns a Cursor that is both null and not null 为什么即使在getContentResolver()。query(uri ...)之后返回游标但是context.getContentResolver()。openInputStream(uri)throws - why even after getContentResolver().query(uri…) returns the cursor but context.getContentResolver().openInputStream(uri) throws 片段getActivity()。getContentResolver()。query()返回null - Fragment getActivity().getContentResolver().query() returning null
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM