Ответы пользователя по тегу Android
  • Экран умер а данные остались на телефоне, как достать их?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Да, есть такой способ.
    Но только если ты предварительно разрешил доступ к телефону через USB в настройках разработчика.
    Второй способ - подключаешь через OTG обычную мышку и юзаешь девайс.
    Третий способ - через Vysor
    Четвёртый - AirDrop
    Если была синхронизация с облаком, то через гугла-аккаунт заходишь в облако и скачиваешь. Для этого оно и было создано
    Ответ написан
    1 комментарий
  • Как отследить двойное нажатие от наушников для Android приложения?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Точного ответа тут не будет, потому что нужна полная документация по наушникам и формату их взаимодействия с устройством через BLE, Bluetooth Low Energy. Если найдёшь такой документ, будь добр, поделись пожалуйста.
    Направление куда копать - BLE, сервисы, характеристики, спаривание (pairing)...
    И посмотри на Gadgetbridge https://codeberg.org/Freeyourgadget/Gadgetbridge
    Возможно, у них появилась поддержка Xiaomi buds
    Ответ написан
  • Почему пишет что приложение не установлено?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Всё зависит от манифеста, версии Андроида, оболочки, самой модели устройства.
    Где вся эта инфа? Нет её
    Ответ написан
    Комментировать
  • Как можно "осовременить" старые Андроиды?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Тут только один вариант. Рутануть устройство и на свой страх и риск поставить самопальную прошивку с 4pda. Если повезёт, то телефон не превратится в кирпич.
    Надо понимать, что производители устройств не просто так не поддерживают старые устройства. С одной стороны - это стимул покупать новые устройства, с другой стороны - производители снимают с себя ответственность поддерживать старые дырявые устройства, от которых проблем больше, чем профита.
    P.S. У меня была история. Я как-то писал приложение под Андроид. И вдруг заметил резкое падение рейтинга в Google Play после обновления из-за оценок. Стал разбираться. Выяснилось, что жалобы шли от владельцев старых устройств, которых было меньше 5%, но которые слали 90% отрицательных отзывов. Я стали изучать проблему в коде и решил, что устранение ради поддержки старых устройств отнимет у меня оооочень много времени. А это, наминуточку, ради всего лишь 5% юзеров, которых с каждым месяцем становится всё меньше.
    Тогда я решил всё просто - отключить поддержку старых устройств и не устранять проблему ради них. И, о чудо! Рейтинг стал подниматься, а отрицательные отзывы исчезли.
    Only business, ничего личного.
    Ответ написан
    5 комментариев
  • Как запустить приложение сразу после установки?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Не существует таких приложений, которые запускаются сразу после установки.
    Такое запрещено на уровне системы.
    Нельзя так делать.
    Ответ написан
    Комментировать
  • Как организовать оптимальную безопасность для своего онлайн мультиплеера на Android?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Ты всё правильно рассуждаешь.
    Исходить из принципа: все клиенты - мошенники.
    0% доверия клиенту.
    Не хранить у клиента никакой информации.
    Клиент - это только рендеринг данных.
    Вся логика - на сервере.

    Вся логика на сервере. Клиенту отдаются только соевые данные для рендеринга.
    Интересует. как в андроид приложениях защититься от подмены данных отправляемых на сервер и быть уверенным, что каждая игра будет честной и без читерства.

    Защита от подмены данных делается простым старым дедовским способом - подписью.
    На сервере и на клиенте есть одинаковый временный ключ для подписи - signKey - длинная строка.
    Клиент отправляет тебе POST-запрос со всеми данными: тип монеты, количество монет, ID юзера,...+ sign=HASH(тип_монеты+количество+userId+...+signKey)
    HASH - это хэш-функция. Лучше использовать Bcrypt вместо слабого MD5.
    Во-первых, всё делается через HTTPS.
    Во-вторых, все операции - через сессии или аутентификацию по JWT.
    На сервере ты делашь следующее:
    - проверяешь соответствие переданных данных ожидаемым: userId (из JWT), тип монеты и прочее. От клиента ты ожидаешь МИНИМУМ изменяемых данных (количество фишек, например)
    - проверяешь все поля на типы данных и ОЧЕНЬ ВАЖНО! - на длину передаваемых значений. Не допускается в строковом поле передавать больше, скажем, 20 символов. Это очень сильно ограничивает брутфорс для поиска коллизии хэша. Количество фишек должно быть целым положительным числом в определённых допустимых пределах (от 0 до 1000, напримр. Чем меньше диапазон, тем лучше)
    - делаешь хэш по переданным значениям и сравниваешь его с переданным хэшем от клиента. Если не совпадают - юзер подменил количество монет.
    На сервере у тебя должна быть защита от брутфорса: от одного userId, IP-адреса должно приходить не более 1-3 запросов в секунду. Если больше - банить на некоторое время, например, на 1 минуту.

    Это то, что касается систем, где данные передаются ОТ пользователя серверу.

    В твоём же случае - это просто игра.
    И здесь поступают проще.
    Всю логику делают на сервере. Юзер кликнул на монету - передаём серверу инфу: click(userId, x,y)
    И вот тут включается логика сервера: он смотрит что за юзер кликнул, куда кликнул, как часто, разрешено ли ему это делать... Если всё в порядке, то сервер отправляет клиенту - Ок, вот тебе заработанные 10 монет. Клиент отрисовывает монетки, юзер радуется.
    В этом случае полностью исключается подмена юзером количество монет, потому что всё решает сервер. Клиент - это просто терминал для отображения данных и отправки кликов на сервер.
    Ответ написан
    1 комментарий
  • Как создать иконку звонка WhatsApp на Android?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Да, это можно сделать.
    Всё прописывается в манифесте для нужного активити.
    Точных параметров не помню, но загуглить несложно
    Ответ написан
    Комментировать
  • Делают ли приложения на двух и более активностях в 2024?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Это дань моде делать на одной активити, просто хайп, который тоже скоро пройдёт
    Ответ написан
    Комментировать
  • Как подменить видеопоток на камере android смартфона?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Да, в эмуляторе Android Studio есть такая возможность.
    В настройках эмулятора можно подменить видео с камеры видеофайлом с компа
    Ответ написан
  • Как раздекодить и собрать apk с успешной установкой?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Ничего сделат нельзя.
    Нужно заново пересобират проект, т.к. со временем в Андроиде появилос много требований в плане безопасности - к разрешениям (камера, геолокация и т.д.), в Bluetooth, к работе сервисов, к задачам в фоновом режиме... И таких "мелочей" - тонна. Поэтому старое приложение не взлетить, если его не пересобрат с учётом новых требований системы.
    Ответ написан
  • Можно ли вывести сообщение на экран смартфона через ADB?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Через ADB можно запустить своё приложение и ему отправлять текст, который приложение будет показывать:
    https://stackoverflow.com/questions/11076408/how-c...
    https://accessibleandroid.com/how-to-make-calls-an...
    Ответ написан
  • Как можно отловить ошибку приложения, если она есть, но вроде нет?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    проявляется как на редминот 13 про, так и на редминот 10

    Предполагаю, что проблема в самих китаефонах.
    т.е андроиды самый последний и не самый. Дело значит не в версии андроида

    Значит, дело в оболочке MIUI от китайцев.
    Попробуй запустить на Google Pixel.
    Ну и отладку на эмуляторах никто не отменял.
    Что в логах ANR/NPE в Firebase?
    Без кода невозможно дать диагноз.
    Возможно, что ты запускаешь на слабых устройствах, которые не тянут приложение.
    Или система не получила нужных разрешений, а ты этот момент пропустил.
    В общем, давай сюда код. Посмотрим.
    Ответ написан
  • Как передать в видео с сервера в приложение android?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Так ты неправильно всё написал
    Ответ написан
    Комментировать
  • Как заставить сразу несколько телефонов (одинаковых) выполнять одни и те же действия? Слышал, что для этого нужен питон?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Через ADB.
    Питон не обязателен, подойдёт любой язык.
    Я писал управление телефоном на C# и на Java
    Ответ написан
    Комментировать
  • Как подменить видеопоток на камере android смартфона?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Нет, это сделать невозможно. Приложение задействует системный API камеры, а без модификации самого ядра Андроида тут сделать ничего нельзя.
    Ответ написан
  • Как получить доступ к накопителю телефона, у которого чёрный экран и не работает сенсор?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Я работаю с такими устройствами через Vysor
    Ответ написан
    Комментировать
  • Какой язык выбрать для создания приложения и его тестирования?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Любой язык. Не в языке дело
    Ответ написан
    Комментировать
  • Как вытянуть кеш из игры Android?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    что такое "дюпать"?
    Ответ написан
    Комментировать
  • Как отследить куда телефон отправляет данные?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    с помощью Charles всё можно отследить
    https://www.charlesproxy.com/
    https://habr.com/ru/companies/cleverpumpkin/articl...
    Ответ написан
    Комментировать
  • Как бэкапнуть банковское приложение на андроиде, не теряя вход?

    Steel_Balls
    @Steel_Balls
    0L3QsNGH0LjQvdCw0Lsg0YEgQkFTSUMg0L3QsCDQo9Ca0J3Qpi
    Как Андроид-разработчик с опытом разработки банковских приложений скажу - этого сделать нельзя.
    Каждый банк максимально защищает своё приложение и имеет права приближённые к максимальным (кроме рута) - геолокацию, доступ к контактной книге, чтению SMS, к файловой системе, IMEI, данным о всех аккаунтах и прочее...
    Именно поэтому я не пользуюсь банковскими приложениями :)
    Ответ написан