У меня есть проблема, которая мучила меня в последние несколько дней. Я хотел бы написать скрипт Android sh, который выполняет следующие действия (чтобы помочь мне синхронизировать музыку, изображения и т. Д.):
1) Включите Wi-Fi (Wi-Fi по умолчанию отключен для экономии энергии)
2) Проверьте, находится ли мое wifi соединение в зоне действия (давайте назовем его myWifi)
3) Если myWifi находится за пределами диапазона, отключите wifi, если он находится за пределами диапазона, подключите и запустите некоторое программное обеспечение для синхронизации
Теперь, чтобы включить / отключить Wi-Fi, я использую следующую команду, для которой требуется root:
svc wifi enable / disable
Для поиска доступных подключений Wi-Fi я использую следующую команду:
iwlist eth0 scan
Самое странное, что iwlist eth0 scan
будет работать только в том случае, если я НЕ вошел в систему как root (мне очень любопытно, почему это так, если кто-нибудь что-нибудь знает?), Запустив его, пока root вернет:
eth0: Interface doesn't support scanning : Invalid argument
, но если запустить его, не входя в систему как root, то даст мне необходимую информацию. Я пробовал разные подходы, чтобы обойти эту проблему. Наиболее очевидным является вход в систему в качестве стандартного пользователя в системе Android непосредственно перед вызовом команды iwlist:
su -c app_1
Однако любая команда, которая включает su, вернет permission denied
даже при вызове его как root, и, поскольку sudo не существует в Android, я чувствую себя довольно растерянным. Я также попробовал обходной путь, включающий разделение скрипта на две части и попытку запуска первого как root, а второго как не root (пользователь по умолчанию в Android i app_1), но это только задержит проблему ...
Если у кого-то есть ответ на вопрос, как обойти эту пользовательскую проблему или как использовать iwlist eth0 scan
(или другую команду, которая делает то же самое) при входе в систему как root, я был бы очень признателен.
Спасибо.