首页 文章

在Android TV Leanback中实现文件对话框

提问于
浏览
7

我有一个 dirPath String变量,我希望能够将其更改为我选择的Android TV应用程序目录 . 我发现Leanback框架's slideshow-like interface a little cumbersome for subtler actions but I would like to stick to it when I can as I'在Android和java上是一个完整的初学者 .

因此,为了坚持最佳实践,我希望用户能够将 dirPath 更改为指向他们选择的目录( dirPath 用作变量来扫描指定目录及其子目录中的音乐) . 在其他平台上,我会寻找操作系统的标准文件打开对话框,但我似乎无法在Leanback框架中找到一个 .

我最好的猜测是使用GuidedStepFragments . 引入整个选项页面感觉有点不合适(请参阅我之前关于leanback的评论's slideshow-like UX) all for the sake of choosing a directory, but it looks like I have little choice? Secondly, I don't在GuidedActions中查看任何文件对话框小部件 . 也许我已经错过了,否则Google热衷于指示文件选择在线而不是本地 .


Additional Information:

我正在尝试在 dirPath 的所有子目录中扫描mp3和flac文件,然后将路径,元数据等添加到我已使用虚拟数据的 SQLite 数据库中 . 我正在避免 mediastore 因为它有太多的限制,特别是它无法访问网络共享,这对我来说是理想的NAS访问 .

一旦用户提名 dirPath 并开始扫描,我将把它传递给 AsyncTask 以在UI的单独后台线程上运行 .


To Summarise:

我正在尝试使用 AsyncTask 在与Android不同的线程中扫描Android TV设备的附加存储中的音乐文件 . 扫描将被送入 dirPath String变量,并将检查此路径及其所有子目录的音乐文件,然后将其传递到元数据提取器,然后将相关数据存储在 SQLite 数据库中 .

我想我对实现扫描有一些了解(Google提供了示例)并且已成功实现将虚拟数据插入数据库 . 我可以't seem to manage is to provide a simple means of letting the user select the path(s) to scan using Android TV'的Leanback库 . 显然这在Leanback中不可用 . 有没有一种方法可以实现这一点,而不是寻找尽可能简单的目录选择对话框 . 如果它必须使用整个选项页面,那么就这样吧 .

3 回答

  • 0

    Leanback库中没有这样的选择器 . 如果您决定实施,请注意,Android TV中不提供Storage Access Framework:

    // from AOSP:
    // cts/hostsidetests/appsecurity/test-apps/DocumentClient/src/com/android/cts/documentclient/
    // DocumentsClientTest.java
    private boolean supportedHardware() {
        final PackageManager pm = getInstrumentation().getContext().getPackageManager();
        if (pm.hasSystemFeature("android.hardware.type.television") || pm.hasSystemFeature("android.hardware.type.watch")) {
            return false;
        }
        return true;
    }
    

    您可以检查 intent.ACTION_GET_CONTENT (可选 Intent.createChooser )将其转发到其他应用程序,但根据我的经验,它不适用于索尼Android TV(仍在调查)

  • 0

    目前,存储访问框架不是Android TV的一部分,尽管可以使用_1310620来构建自己的文件选择器,以逐步浏览本地文件系统上的文件夹,直到找到要选择的文件夹 .

  • 4

    您可以使用任何已有的逻辑进行文件浏览,并为您的案例实现具有自定义视图的对话框 . 您可以检查Es File explorer app以供参考 . 在Android TV中,您可以实现并向用户显示您希望的任何视图 . 对于每个视图,mantra都是'nextFocusDown','nextFocusUP','nextFocusLeft','nextFocusRight',以便在ui组件之间轻松导航 . 如果你想向用户提供一个edittext,请注意,因为没有特殊的键盘,如数字键盘等,为Leanback提供 .

相关问题