如何访问 Tizen 智能电视中的外部存储

How to access external Storage in Tizen Smart TVs

我需要你的帮助来了解如何从 Tizen 智能电视的外部 USB 存储写入和读取文件。检测到问题就开始了

`
/**
 * Hello World Sample Project
 */
// import Label component
var Label = caph.require('ui.base.component.Label');

caph.app.addScene('main', $class({
    $extends : caph.require('ui.base.Scene'),

    // oncreate is called when the scene is created
    oncreate : function() {
        // add "Hello World"

        this.addChild(new Label({
            text : 'Hello World',
            size : [ 500, 100 ],
            position : [ 300, 400 ]
        }).setTextSize('72px').setStyle({
            backgroundColor : 'red',
            color : 'white'
        }));

        /// Here the filesystem showd show me all the storages
        tizen.filesystem.listStorages(checkCorruptedRemovableDrives);
    }
})).run();
`

这里是成功回调,它显示了我有多少存储空间。 ` /* 成功事件处理器 */ var checkCorruptedRemovableDrives = 函数(存储){

    /// Here I will kow how much storages I have
    console.log(storages.length);

    for (var i = 0; i < storages.length; i++) {
        if (storages[i].type != "EXTERNAL")
            continue;
        if (storages[i].state == "UNMOUNTABLE")
            console.log("External drive " + storages[i].label + " is corrupted.");
    }
};
`

这是出错时抛出的方法,永远不会调用。 var checkCorruptedRemovableDrivesError = function(storages){ console.log("Error"); }

现在,控制台输出是一个简单的 0,这意味着我没有存储空间(但我安装了内部的一个和两个 USB)。

有没有人遇到过这个问题或对如何解决有任何想法?

您使用网络模拟器吗? API 在 Web 模拟器中无法正常工作。它不能很好地模拟东西。

当我检查 'emulator' 中的 listStorage 时,它​​会抛出存储列表。 但即使我可以获得存储列表,我也不能在文件系统中使用它。这是SDK 1.4的错误。

SDK 1.5 将具有USB 存储测试功能,计划在一个月内发布。等一个月:(

Samsung Tizen TV 总是使用 "removable2" 作为 USB 的标签。 所以你不需要使用 listStorage 和 getStorage。

多个USB区分为"removable2/sda1"、"removable2/sda2"

tizen.filesystem.resolve("removable2", function(e){
        e.listFiles(function(r){
            for(i = 0; i < r.length; i++){
                tizen.filesystem.resolve(r[i].path + r[i].name, function(t){
                    //You resolve USB root. Do something you want with USB.
                }, function(t){
                    console.log("resolve error for " + r[i].path + r[i].name);
                    console.log(t);                
                }, "rw"); //you should use rw permission, to write something in usb.
            }
        });               
    },function(e){
        console.log("removable2 resolve error");
        console.log(e);
    }, "r"); // permission should be given as r for removable2

这是我做的测试应用。您可以查看如何使用 SDK 1.5

http://www.samsungdforum.com/SamsungDForum/ForumView/3ad8bd6023af18a7?forumID=d88a711f47dc6e9f

此应用适用于电视和 SDK 1.5