Android - Как позволить Bluetooth всегда быть на?

Что продолжается здесь?

Первоначально, эти tar команда была предназначена для использования с устройствами магнитной ленты. Так как только имело смысл выполняться tar на одном устройстве за один раз, синтаксис был разработан для принятия одного и только одного устройства. Первый файл или каталог передал, как, предполагалось, был устройством, которое содержало рассматриваемый архив и любые другие файлы или каталоги где содержание архива, который будет включен в операцию. Таким образом для tar извлечение (x опция), первый файл передал, будет архив, и все другие файлы были бы файлами, которые будут извлечены. Таким образом, если бы существует два *.tar файлы (скажите a.tar и b.tar), Ваша команда расширилась бы до:

$ tar xf a.tar b.tar

, Если a.tar не содержит файл, названный b.tar, эти tar, команда нечего делать и выходит бесшумно. Раздражающе, версия Соляриса [1 116] не сообщает ни о каких проблемах или в коде возврата или с подробной опцией (v). Между тем, GNU tar возвраты 2 и сообщения со спамом STDERR даже с подробной опцией прочь:

tar: b.tar: Not found in archive
tar: Exiting with failure status due to previous errors

, Как делают меня untar набор файлов сразу?

Это - слишком последняя перезапись tar для принятия нескольких архивных файлов как вход, но не слишком трудно работать вокруг ограничения.

Для большинства людей, работая tar многократно за несколькими архивами самая целесообразная опция. Передача всего одного имени файла к [1 123] извлечет все заархивированные файлы, как можно было бы ожидать. Один подход должен использовать оболочку for цикл:

$ for f in *.tar; do tar xf "$f"; done

Другой метод должен использовать xargs:

$ ls *.tar | xargs -i tar xf {}

, С другой стороны, можно использовать один из многих альтернатива tar средства чтения файлов . Наконец, действительно преданный программист мог легко записать tar замена, которая работает точно, как желаемый. формат прост, и много языков программирования имеют библиотеки в наличии для чтения tar файлы. Если Вы - программист Perl, например, смотрите на Archive::Tar модуль.

А, предупреждающий

, Вслепую несмолить набор файлов может вызвать неожиданные проблемы. Самое очевидное - то, что конкретное имя файла может быть включено больше чем в один tar файл. С тех пор tar файлы перезаписей по умолчанию, точная версия файла, с которым Вы заканчиваете, будет зависеть от порядка, архивы обрабатываются. Больше беспокойства, можно закончить с поврежденной копией файла при попытке этой "умной" оптимизации:

for f in *.tar; do
  tar xf "$f" &
done
wait

, Если и a.tar и b.tar содержат тот же файл и попытку извлечь его одновременно, результаты непредсказуемы.

А связанной проблемой, особенно при взятии архивов из недоверяемого источника, является возможность tarbomb.

Одно частичное решение состояло бы в том, чтобы автоматически создать новый каталог для извлечения в:

for f in *.tar; do 
  d=`basename "$f" .tar`
  mkdir "$d"
  (cd "$d" && tar xf "../$f")
done

Это не поможет, если файл будет определен в архиве с полным путем (который обычно является знаком злонамеренного намерения). Добавление такой проверки оставляют как осуществление для читателя.

13
задан Yaqub Ahmad 17 December 2011 в 13:34
поделиться

4 ответа

Реализация Bluetooth теперь доступна в Android 2.0 API. См. это и это .

9
ответ дан 2 December 2019 в 00:18
поделиться

Стек Bluez в Linux - это реализация с открытым исходным кодом. Он также доступен в Windows, но в Linux API гораздо более полный.

Когда вы говорите «включить Bluetooth всегда», вы имеете в виду, что всегда пытаетесь обнаруживать другие устройства?

Большинство чипов Bluetooth имеют глубокую спящий режим, при котором микросхема в основном не работает и просто появляется, чтобы проверить активность на любых установленных ссылках.

1
ответ дан 2 December 2019 в 00:18
поделиться

BlueCove - это реализация Bluetooth с открытым исходным кодом для Java.

Он работает на множестве разных машин, и если все верно, то где-то скрывается версия, совместимая с Android.

0
ответ дан 2 December 2019 в 00:18
поделиться

Включение Bluetooth всегда может быть не лучшим решением, если ваша единственная забота - долгое время. задержка обнаружения ("время автономной работы").

Что касается сторонних API-интерфейсов Bluetooth, единственное, о чем я слышал, это iAnywhere Blue SDK (от Sybase, не бесплатно, только для оценки доступная версия), который охватывает некоторые функции, которые будут поддерживаться в будущем пакетами system / bluetooth и bluez .

Согласно Android Bluetooth дорожная карта , большинство из долгожданных вещей, таких как Java API, Bluetooth 2.

2
ответ дан 2 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: