Скрипт оболочки для Android TV зависает во время ротации URL-адресов при взаимодействии с пользователемAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Скрипт оболочки для Android TV зависает во время ротации URL-адресов при взаимодействии с пользователем

Сообщение Anonymous »

Я работаю над сценарием оболочки, который работает на ТВ-устройстве Android 8.0. Сценарий предназначен для:
  • вызова другого веб-сайта каждые 30 секунд из списка URL-адресов, предоставленного функцией Azure.
  • Сброс 30-секундного таймера, если пользователь взаимодействует с сенсорным экраном.
Вот сценарий, который у меня есть:

Код: Выделить всё

#!/system/bin/sh

# Azure Function URL
azure_function_url="path to azure function"
# Sample result: URLs = ["https://google.com", "https://bing.com", "https://stackoverflow.com"]

# Fetch URLs from the Azure Function
json_response=$(/data/local/tmp/curl "$azure_function_url" -k -L)
echo "JSON Response: $json_response"

# Extract URLs using jq
URLs=($(echo $json_response | /data/local/tmp/jq171 -r '.[]'))

# Print the URLs array
echo "Extracted URLs:"
for url in "${URLs[@]}"; do
echo "$url"
done

# Function to reset sleep timer
reset_timer() {
echo 30 > /data/local/tmp/sleep_timer.txt
}

# Initial sleep timer value
echo 30 > /data/local/tmp/sleep_timer.txt

index=0
url_count=${#URLs[@]}
# Loop through each URL
while true
do
url="${URLs[$index]}"
am start -a android.intent.action.VIEW -d "$url"

# Loop with sleep timer
while [ $(cat /data/local/tmp/sleep_timer.txt) -gt 0 ]; do
already_reset=false
getevent -lt /dev/input/event1 | while read line
do
if echo "$line" | grep -q "ABS_MT_POSITION_X"; then
if [ "$already_reset" = "false" ]; then
reset_timer
already_reset=true
fi
fi
done &

sleep 1
sleep_timer=$(cat /data/local/tmp/sleep_timer.txt)
((sleep_timer--))
echo $sleep_timer > /data/local/tmp/sleep_timer.txt
done
index=$(( (index + 1) % url_count ))

echo 30 > /data/local/tmp/sleep_timer.txt
done

Проблема:
Скрипт работает, но все устройство (на данный момент эмулятор) зависает и сильно тормозит при взаимодействии с сенсорным экраном.< /p>
Вопросы:
  • Как оптимизировать скрипт, чтобы устройство не зависало во время взаимодействия с пользователем?
  • Существуют ли альтернативные подходы для достижения той же функциональности без проблем с производительностью?
Есть идеи или предложения по улучшению сценария или альтернативное решение было бы весьма признательно. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... nteraction
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»