Одной из тем, которая меня серьезно интересует, является тема совместимости различных версий ПО. Причины этого, как учат нас психологи (или психотерапевты?), скорее всего, уходят своими корнями в детские психологические травмы, полученные из-за того, что окружающие воспринимали молодого, не совсем еще окрепшего, но амбициозного, специалиста, в роли "тыжпрограммист", которая предполагала (и предполагает до сих пор), что ее обладатель в силах предложить решение всех проблем любого устройства, поключенного (не всегда!) в розетку, сразу после короткого общения по телефону (или лично), во время которого до его сведения доводится очень важная информация о том, что "эта фигня" не работает.
Даже в те далекие (сейчас уже) годы, когда моя трудовая деятельность только начиналась (речь про середину-конец 80-ых), довольно часто можно было встретить ситуацию, когда на двух стоящих рядом, вроде, одинаковых компьютерах, работающих под управлением одной и той же версии операционной системы (MS DOS 3.10), одна и та же программа (какой-нибудь StoryBoard или PathMinder, и уж, тем более, DESQView) работала по разному. При разборе полетов выяснялись различия в конфигурационных файлах (autoexec.bat, config.sys), выявлялся целый зоопарк используемых резидентных программ, а также установленные устаревшие или же, наоборот, новейшие версии драйверов. Но все эти различия и нюансы можно было увидеть только собственными глазами, да и места, куда смотреть, надо было знать, или же уметь интуитивно находить, после чего и пробовать различные методы решения проблемы.
Интернета со stackoverflow в те времена не было, книги, что переведенные, что в оригинале, были большой редкостью, да и их владельцы какой-либо информацией делиться не спешили, ну или делали это крайне неохотно, так как подрывали этим свою важность. Так что фраза великого поэта "... и опыт - сын ошибок трудных..." была, как говорится, не в бровь, а в глаз.
Что хотелось бы подчеркнуть особо: на положительный исход "лечения пациента" можно было расчитывать только при "доступе к телу", или при наличии у проблемного устройства достаточно грамотного пользователя, который мог не только исполнять дистанционные указания, но и генерировать собственные идеи на основе более тесного знакомства с конкретной ситуацией.
Конечно, с течением времени появлялись и нарабатывались более менее стандартные подходы к решению проблем (а откуда, вы думали, появилась знаменитая фраза "попробуйте перезагрузиться"?), но проблемы тоже на месте не стояли и продолжали самосовершенствоваться. Появление на пользовательских устройствах Windows, браузеров, тонких клиентов и так далее, только усугубило ситуацию. Более того, надо сказать, что опыт старшего брата был успешно опробован и принят в качестве жизненного кредо младшим ребенком - мобильными системами, всеми этими планшетами и смартфонами.
Нет, я должен, конечно, отметить, что все эти годы был и остается на рынке один игрок, который пытается укротить все это буйство хаоса, загнав всех в маленький загон, который, как он считает, можно контролировать. Этот игрок достоин уважения хотя бы за то, что остается верным своей концепции, несмотря на ненависть со стороны множества злопыхателей. Хотя, если честно, есть некоторые сомнения в том, что в основе этой верности лежит действительно забота о пользователях, а не патологическая жадность и маниакальная страсть управлять миром.
Ну вот, опять я разворчался, пора вернуться к сути. В настоящих реалиях без мобильных устройств - никуда, и я - не исключение. Должен сказать, что мною довольно интенствно используется планшет, особенно в автомобиле, где он оказывает мне просто неоценимую помощь в качестве навигатора. Но этой функцией дело не ограничивается, планшет может предоставить еще несколько полезных, с точки зрения автомобилиста, услуг, например, предупреждать о всевозможных камерах (программа Стрелка) и/или выполнять роль видеорегистратора (DailyRoads Voyager). На самом деле, этот набор программ (навигатор, оповещатель о радарах, видеорегистратор) кочевал у меня с планшета на планшет, по мере того, как устройства сменяли друг друга, будь то по причине поломки или просто морального старения. И как-то так само собой получалось, что каждое новое устройство было оснащено новой версией Android.
С поcледним планшетом от Huawei (MediaPad T3 модель KOB-L09), работающим под Android 7.0, случилась неприятность - треснуло стекло. Причем, произошло это прямо на моих глазах. Сначала появилась маленькая щербинка, коротенькая и тоненькая, как волос. Не совсем осознавая, что это такое, я поводил пальцем и "волосок" вырос на сантиметр. Еще парочка экспериментов и вот уже отчетливая трещинка замысловато соединяет верхнюю и правую сторону планшета, протянувшись почти через весь экран. Некоторое время я пользовался Mediapad-ом, игнорируя явный косметический дефект, так как функциональность не пострадала - тач работал без нареканий. Но, постепенно, трещина стала меня раздражать. Дело в том, что когда планшет был установлен в держателе на приборной панели авто, то свет, преломляясь, делал эту трещину уже не такой тонкой и незаметной.
Через некоторое время я решил использовать другое устройство. Благо, в наличии имелся вполне приличный агрегат - Samsung Galaxy Tab S модель SM-T700. Но с ним была засада - он перегружался. То есть, стоило только чем-то его напрячь, как он уходил в перезагрузку. Сейчас я не буду рассказывать про то, как я решил данную проблему, может быть потом как-нибудь напишу. Отмечу лишь то, что на нем была установлена версия Android 6.0.1. Таким образом, это был, пожалуй, первый случай, когда я переходил на устройство с заведомо более старой версией ОС. Причем, шестеркой на планшетах я раньше не пользовался - перед MediaPad-ом у меня был ASUS MeMO Pad 7 ME572CL с пятеркой на борту.
"Ну ладно, мы люди не гордые, можно и на "шестерку" перейти" - подумал я и, вздохнув, стал устанавливать нужный мне софт. Так, навигатор, видеорегистратор, радар-оповещатель... еще кое-какой софт... все, завтра Samsung будет установлен на приборную панель. Сказано - сделано, утром я на автомате запустил Стрелку, навигатор, выехал со стоянки и тут понял, что на экране нет окошка со скоростью, которое там должно было быть! Я попробовал запустить Стрелку еще раз и с удивлением обнаружил, что когда перевожу ее в рабочий режим, на экране появляется... окно настроек Android. У меня появилось подозрение, что программа хочет каких-то разрешений, но в процессе езды выяснять причину не стал, так как квест обещал быть занимательным и долгим.
Вечером я решил таки уделить некоторое время проблеме. И начал с чтения информации от автора программы. Надо отдать должное - в отличии от множества программ, зачастую даже весьма качественных, документация была. И был даже раздел, который мог иметь отношение к моей проблеме. Внимательно прочитав пояснения автора, я принялся реализовывать его советы, мысленно потирая руки в предвкушении скорой победы. Каково же было мое разочарование, когда предположения автора (да и мои) не нашли своего подтверждения.
На всякий случай, поясню, ведь вы ж точно не переходили по ссылке и не читали доку? Так вот. Автор честно предупредил, что с шестой версии Android изменилась система прав, предоставляемых программе для доступа к уведомлениям - именно через уведомления во всплывающих окнах было реализовано оповещение пользователя о приближении к радарам. В документации были даны наглядные инструкции, как включить все нужные разрешения, где и как посмотреть те или иные настройки, и даже отмечен факт, что при обновлении какие-то установки могут сбиться. Проблема же заключалась в том, что на моем устройстве все нужные упоминавшиеся настройки были сделаны, как надо. Понимая, что иногда нельзя верить своим глазам, я, на всякий случай, пробежался по настройкам и, для пущей уверенности, сбросил и заново установил переключатели в нужное положение. Не помогло.
Не буду дальше описывать все комбинации настроек, которые я испробовал, пытаясь запустить Стрелку. В конце концов, когда уже хотелось разбить планшет и отказаться от продолжения борьбы, вспомнил я про замечательный сайт 4pda. Сколько раз он меня выручал - не перечесть! Вот и в этот раз, в разделе форума, посвященному Стрелке, я нашел то, что искал - старые версии программы (мне показалось неплохой идеей проверить, как ведут себя предыдущие версии).
Начал я свои тесты с предпоследней версии программы (5.86): увы, результат не изменился. Тогда я кардинально сменил стратегию и решил установить самую старую версию, из имеющихся в списке - 5.53. Во время установки меня ожидал небольшой сюрприз - программа запросила разрешение отображаться поверх всех окон. Она точно не запрашивала этого разрешения при установке версии из Google Play и предпоследней версии с форума 4pda. Но указание проверить и включить это разрешение было в описании программы для android 7.0! Естественно, я его пропустил, ведь на моем планшете работала "шестерка"!
Теперь осталось лишь провести завершающий эксперимент. Я удалил программу и заново установил ее из каталога приложений. Проверил и включил все разрешения, о которых написал автор в своей документации, после чего занялся разрешением "Поверх других приложений". Конечно же, оно было отключено. После включения все заработало должным образом!
На всякий случай, приведу последовательность действий, которые надо выполнить на планшете Samsung Galaxy Tab S SM-T700 с установленным Android 6.0.1:
- открываем настройки, например, через "шторку":
- надо перейти на закладку "Приложения":
- на этой закладке надо открыть меню дополнительных действий:
- и уже в этом открывшемся меню выбрать нужный пункт:
- после чего будет отображен список приложений, для которых это разрешение ("Поверх других приложений") важно, среди них надо выбрать нужное и дать ему возможность использовать этот режим:
Этот случай лишь еще раз укрепил меня во мнении, что тот зоопарк систем, который имеется в настоящее время, нисколько не способствует повышению качества сопровождения пользователей - если уж сами разработчики начинают путаться, то что уж говорить о простых смертных?! И еще... "тыжпрограммисты" без работы остаться не рискуют! 🤓
P.S. Я долго не публиковал этот пост, даже не знаю, почему. Так вот, пока суть да дело, выяснилось, что этот случай со Стрелкой не уникален. Есть такой видеорегистратор - DailyRoads Voyadger, который я использую, после того, как Google заблокировал купленный мною ранее видеорегистратор VideoReg. И у него, при использовании в фоновом режиме с показом плавающих кнопок, возникают те же самые проблемы, от которых можно избавиться точно таким же образом - предоставлением разрешения "Поверх других приложений".