2015-06-16 11 views
0

Мне нужна помощь, чтобы узнать, как писать и читать файлы с внешнего USB-накопителя с Tizen Smart TV. Неисправность возникает при ее обнаруженииКак получить доступ к внешнему хранилищу в Tizen Smart TVs

` 
/** 
* 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(); 
` 

И вот обратный вызов успеха, это покажет мне, сколько у меня хранилищ. ` /* Успех обработчик события */ вар 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 meanning У меня нет памяти (но у меня есть внутренний, один и два USB смонтированных).

Кто-нибудь сталкивался с этой проблемой или имел какую-либо идею о том, как ее решить?

ответ

1

Samsung Tizen TV всегда использует "removable2" в качестве метки для USB. Так что вам не нужно использовать listStorage и getStorage.

Несколько USBs различают как "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

0

Вы используете веб-симулятор? API не работают в веб-симуляторе правильно. Он не может хорошо имитировать ситуацию.

Когда я проверяю listStorage в 'emulator', он выдает список хранилищ. , но хотя я могу получить список хранилищ, я не могу использовать его в файловой системе. Это ошибка SDK 1.4.

SDK 1.5 будет иметь тестовые функции для хранения USB, и его планируется выпустить через месяц. Подождите месяц :(

+0

Спасибо, но я использую настоящий телевизор для проведения тестов. –

+0

У вас уже есть файловая система? –

+0

Здравствуйте. SDK 1.5 выпущен. и я получаю файловую систему, которая работает нормально как на SDK, так и на телевизоре. SDK не может получить событие прослушивателя изменений состояния и ошибку в отображаемом состоянии, но он может получить список файлов правильно. Телевизор работает очень хорошо. –