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

时间:2015-06-16 18:45:19

标签: api filesystems mount tizen samsung-smart-tv

我需要您帮助了解如何从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 = function(storages){

    /// 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)。

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

2 个答案:

答案 0 :(得分:1)

三星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

答案 1 :(得分:0)

您使用Web模拟器吗? API无法正常在Web模拟器中工作。它无法很好地模拟事物。

当我在&#39;模拟器&#39;中检查listStorage时,它会抛出存储列表。 但即使我可以获得存储列表,我也无法在文件系统中使用它。这是SDK 1.4的错误。

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