ANDROID: доступ к общим ресурсам CIFS в Java - PullRequest
10 голосов
/ 05 февраля 2011

Я пишу свое первое приложение для Android, которое более или менее станет менеджером точки монтирования.Локальное монтирование и монтирование NFS было простым, но я не уверен, что делать с общими ресурсами CIFS.

В идеале, после выбора хоста должен отображаться список общих ресурсов CIFS.Как минимум, я должен быть в состоянии ввести CIFS URI / строку общего доступа и смонтировать ее (например: //192.168.1.100/mount_point).Я имею в виду EStrongs, где вы можете выбрать хост, и он будет отображать общие ресурсы, которые вы затем сможете изучить.

Я видел jCIFS (думаю, именно это использует Astro), и явидел упоминание модуля cifs.ko на xda-developers.Есть ли другие стандартные подходы?Любые советы / рекомендации о том, как использовать jCIFS или cifs.ko и делать это в целом?Я бы предпочел не получать root-права.

Ответы [ 3 ]

4 голосов
/ 24 декабря 2011

Товарищ Androider здесь, я изучал различные протоколы в прошлом, и вот что я нашел:

Если это должен быть CIFS, то я бы порекомендовал jCIFS. Astro использует его, как вы упомянули, и EStrongs тоже. И ... как и AndSMB от lysesoft. Итак, я уверен, что это стандартный подход «перейти к».

Если вы ищете только поддержку SMB, вас может заинтересовать это как альтернатива: http://java -source.net / с открытым исходным кодом / сеть-клиенты / jftp

Кроме того, для других протоколов это отличный список для просмотра: http://java -source.net / с открытым исходным кодом / сеть-клиенты

Надеюсь, это поможет.

2 голосов
/ 29 декабря 2011

Быстрый захват Wireshark показывает, что EStrongs также использует jCIFS, так что это будет и моя рекомендация.jCIFS был написан как клиентский инструментарий CIFS, поэтому его следует адаптировать к целям вашего проекта.По сути, он не «монтирует» удаленную файловую систему, но дает вам доступ к файлам, каталогам, спискам общих ресурсов и т. Д. Как вы представляете эту информацию на ваше усмотрение.

Другим ресурсом будет Внедрение CIFS , онлайновая книга о внутренностях набора протоколов SMB / CIFS.В частности, обратите внимание на Приложение D , которое охватывает формат URL SMB.URL SMB предпочтительнее, чем фиктивный формат UNC, использованный в исходном сообщении (см. Выше).

2 голосов
/ 21 декабря 2011

Поскольку Android - это Linux, вы можете использовать драйверы ядра, но для их загрузки требуется root, или вы можете использовать FUSE , который предположительно поддерживается со времен Gingerbread (сам не пробовал), или выможно использовать библиотеку Java, такую ​​как JCIFS

...