Ответы пользователя по тегу Android
  • Существует приложение для получения данных о местоположении смартфона без подключения к интернет?

    Rou1997
    @Rou1997
    Наверняка уже реализована технология получения координат местоположения смартфона, не подкюченного к сети интернет.

    Реализована, это и есть GPS, но не все смартфоны вообще ее поддерживают, а также GPS доступен не везде, например, в зданиях он недоступен, хотя там доступен мобильный интернет.
    Поэтому используют эти технологии в паре, а только одно это сомнительное решение.
    Ответ написан
    3 комментария
  • Как андроид выбирает разрешение картинок?

    Rou1997
    @Rou1997
    Читал, читал, но всё равно суть не понял.

    Такое лучше не читать, а исследовать - дюймы ШxВ, физические пиксели, dpi - зависимость есть, нужно ее выявить и сформулировать.

    плотность 240 ... он использует картинки из ресурсов для hdpi 48х48

    $ google hdpi range
    Результат: LDPI = 120 DPI MDPI = 160 DPI HDPI = 240 DPI XHDPI = 320 DPI XXHDPI = 480 DPI XXXHDPI = 640DPI
    Все правильно, 240 dpi - это hdpi.

    На всякий случай, объясню как это должно работать.
    При правильном использовании этого деления по dpi, метрический размер изображения - в дюймах, мм, линейкой померять - должен получаться одинаковым, независимо от размера дисплея и его разрешения.
    Если у вас не так - сделайте скриншоты и будет разговор.
    У эмулятора вы еще могли изменить размер окна, не меняя самих характеристик "виртуального дисплея", разумеется, метрический размер изображения при этом нарушится.
    Ответ написан
  • Приложение вылетает при динамическом заполнении через ArrayAdapter?

    Rou1997
    @Rou1997
    В чём ошибка?

    Все ошибки - обычно в LogCat!
    Ответ написан
    Комментировать
  • Как отлавливать отчеты о доставке СМС Андрооид?

    Rou1997
    @Rou1997
    Возможно, вот в этом Intent arg1 будет специальная extra с данными, см. документацию, хотя вряд ли. Но и без этого задача элементарная, раз вы передаете оба sentPI в sendTextMessage то они будут соответствовать, остается только в анонимный класс передать поле, это делается так:
    final String num = ...;
    ...
            registerReceiver(new BroadcastReceiver(){
    ...
    //переменная num доступна

    Остальное компилятор сделает сам.
    Другой вариант, вместо анонимного класса создать просто внутренний класс, в конструктор добавить параметр.
    Или третий, "класть" анонимный класс в переменную, в самом нем объявить публичное поле, задавать это поле, а уже затем registerReceiver.
    Ответ написан
  • Какие практики популярны при создании Lite & Pro версии приложения?

    Rou1997
    @Rou1997
    Первая проблема которая приходит на ум: имена пакетов.

    Обычно их разными делают, com.company.package и com.company.package.pro, заодно где надо в коде можно проверять Pro или нет по имени пакета, в том числе встречал "взломостойкие" реализации проверки имени пакета, правда, они были не в Java, а в JNI, поскольку Java и взломостойкость вообще не совместимые понятия, и скорее думать следует об этом, а не о репозиториях, реверс-инжиниринг сейчас конечно далеко не в пике развития, но для такой примитивной задачи как удаление рекламного SDK или иной "взлом" APK, найти человека не составляет большой проблемы, если ваше приложение того стоит.
    Ответ написан
    Комментировать
  • Почему крашится приложение android, при вызове okhttp?

    Rou1997
    @Rou1997
    } catch (Exception e) {
        Log.d("CONNECT: ", e.getMessage());
    }

    Кто так пишет?
    Мало того, что это может привести вот к таким проблемам, вдобавок это неэффективно так как сообщения может не быть вовсе, или быть бесполезным.
    Сам бог велел писать так:
    } catch (Exception e) {
       e.printStackTrace();
    }

    Если этого недостаточно, то пишите свою util функцию, но тут уже хорошо думать надо.
    Ответ написан
    4 комментария
  • Как организовать работу компьютера и android-смартфона без интернета?

    Rou1997
    @Rou1997
    А почему не Bluetooth?

    Постоянная зарядка может испортить аккумулятор?

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

    И несет ли в себе это опасность для жизни человека?

    Смартфон в кармане гораздо опаснее, чем лежащий на столе.

    При первом варианте возможно настроить статический IP на сервер?

    В каком смысле?
    IP в локальной сети - будет статическим, для глобальной сети это уже у провайдера должно быть, статический и "белый".
    Ответ написан
    Комментировать
  • Как настроить кнопки через библиотеки в android?

    Rou1997
    @Rou1997
    Это не так просто! Поэтому необходимо избегать использование библиотек, особенно от "кого попало".
    В любом случае, сперва - анализ исходного кода обеих библиотек, и смотреть где можно сделать dependency injection, в лучшем случае действительно будет способ использовать их вместе с одной кнопкой, в худшем - придется брать код из одной и переносить в другую, а это без опыта и развитого аналитического мышления выльется в "геморрой", может быть вам будет проще писать свою с нуля, потихоньку копируя из имеющихся лишь принцип, а реализовывая самому, это индивидуально и от везения зависит.
    Ответ написан
    Комментировать
  • Toolbar and ActionBar material design?

    Rou1997
    @Rou1997
    Скриншоты кода не вижу, кто вообще публикует код скриншотами, а на скриншоте самого экрана я вижу стандартный Toolbar, в нем заголовок и ActionBarDrawerToggle должны быть по центру по вертикали, если у вас получается сверху то какой-то дефект разметки, сравните с "оригиналом", например который создается в Android Studio при создании Navigation View Activity.
    Ответ написан
    Комментировать
  • Как сделать запрос, используя OkHttp?

    Rou1997
    @Rou1997
    Во-первых, еще нужно import этого самого OkHttpClient добавить в коде.
    Во-вторых, если Gradle, то лучше бы подключали не вручную, а добавив его в dependencies, при сборке Gradle сам скачает и подключит.
    В-третьих, в OkHttp нет особого смысла, даже вместе с Retrofit польза этой системы сомнительна, а уж сам по себе он вообще бесполезен, сами подумайте - что он дает, лучше самому написать такой класс, APK будет меньше размером.
    Ответ написан
    5 комментариев
  • Какое андроид приложение может отслеживать действия другого?

    Rou1997
    @Rou1997
    Именно про отслеживание на UNIX не знаю, дел не имел, но возможна декомпиляция приложения, с этим имел, хотя и не скажу что легкое, если приложение не маленькое.
    Ответ написан
  • Android. Допустимо ли так делать?

    Rou1997
    @Rou1997
    Я к этому отношусь так же, как и к такому примеру рекурсии:
    void tryConnectToServer() {
     tryConnectToServer();
    }

    Суть-то где?
    Ответ написан
  • С помощью чего и как делать настройки для приложения на Xamarin.Android?

    Rou1997
    @Rou1997
    Знаю, что существует preference, знаю, что существует Settings Plugin, но не могу понять чем лучше пользоваться

    Для начала чем получается.

    и как пользоваться

    У Xamarin очень слабая экосистема, поэтому абсолютно чем угодно пользоваться проще сперва на Java.

    Нашел пример кода, описывающий работу с кнопкой. Пытаюсь сделать аналогию со свитчем, но не могу понять принцип работы.

    Потому что этот пример кода у вас и не работает, а еще только описывает. :)
    Ответ написан
    Комментировать
  • Android. Как изъять выделенный текст из WebView в переменную?

    Rou1997
    @Rou1997
    Мое предложение - через JavaScript, собственно в JavaScript есть неплохой интерфейс window.selection, остается в нужных событиях обратиться к созданному JavascriptInterface, который будет это обрабатывать и использование значение как требуется, но поищите получше, думаю что есть более удобный вариант, напрямую.
    Ответ написан
    Комментировать
  • Как сделать переход между формами?

    Rou1997
    @Rou1997
    Создайте новый Activity, а простейший код для перехода - такой (снова Java, на Xamarin неохота):
    Intent intent = new Intent(this, MyActivity2.class);
    this.startActivity(intent);

    Куда именно его писать - найдите там же, где и про создание самого options menu.
    Ответ написан
    Комментировать
  • Как сделать кнопку перехода в настройки на верхней панели на Xamarin.Android?

    Rou1997
    @Rou1997
    "Верхняя панель" - это, наверно, ActionBar (стандартный в Android) или Support ActionBar (из библиотеки AppCompat v7) в случае с Xamarin скорее всего первое, добавить туда кнопки можно в методе onCreateOptionsMenu, переопределяете этот метод в вашем Activity, и либо делаете inflate готового XML layout типа menu, либо добавляете элемент(ы) вручную с помощью menu.add, ищите примеры на C# по ключевому слову onCreateOptionsMenu, но как всегда не стоит надеяться на слабую экосистему Xamarin, надо искать также примеры на Java, чтобы их перевести на C#.
    Ответ написан
    Комментировать
  • Как узнать что активити запущено?

    Rou1997
    @Rou1997
    Распространения состояния - это типичная проблема при многозадачности, будь-то многозадачность в ОС, клиент-сервер или что-то еще, к счастью встречается не часто, поскольку ОС и прикладные средства многое делают за нас, но рано или поздно встречается в очередном проекте, в той или иной форме.

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

    Я не буду давать готового решения вашей проблемы, а опишу, как такие проблемы решать, постараюсь показать именно на примере Android и именно на вашей, я их уже решал успешно, а значит, если будете ориентироваться на предлагаемый мной план, то в итоге решите и эту, и другую.

    Собственно и так не понятно кто/где и в какой момент инстанцирует экземпляр сервиса и активити

    Для начала нужно ответить именно на эти вопросы, то есть изучить lifecycle для Activity и для Service.
    Это делается даже без чтения документации и исходного кода, просто проводятся несложные эксперименты: перекрываются методы onCreate, onDestroy и ставится на них логирование, затем делаете разные действия (прежде всего нужно поискать в настройках что пользователь может завершить вручную отдельно от остального, я и так скажу - Service можно, Activity нет), сами методы onCreate, onDestroy не статические, значит вызываются в каком-то экземпляре, ну, а придумать, как проверить тот ли это экземпляр или при этом создается новый - труда не составляет.
    Это можно назвать "анализом алгоритма Android", того, который в API Android.

    Следующий этап - "синтез разных вариантов нашего алгоритма и их анализ", нужно представить две координатные прямые по времени - Service и Activity, и "прокрутить" в голове все возможные варианты.
    Например, у вас может возникнуть такая идея:
    1) Создаем BroadcastReceiver в Service.
    2) Затем из Service запускаем Activity.
    3) Она при запуске посылает sendBroadcast, при завершении тоже.
    4) Service его получает и узнает состояние Activity.
    Вроде бы, идея верная.
    Но мы знаем, что Service может быть завершен отдельно от Activity и запущен заново, а Android никак не оповестит об этом Activity, а значит, возможен такой вариант:
    1) Создаем BroadcastReceiver в Service. Он по умолчанию знает, что Activity не запущена, и это истина.
    2) Затем из Service запускаем Activity.
    3) Она при запуске посылает sendBroadcast(started), запущенный ранее ресивер его принимает, результат - Service знает, что Activity запущена, и это истина.
    4) Но затем Service завершается отдельно, значит и BroadcastReceiver - тоже, затем запускается новый Service , но Activity не запускается заново и поэтому нового sendBroadcast(started) она не отправляет, и второй Service снова по умолчанию знает, что Activity не запущена, а теперь это - ложь, ведь она все еще запущена с первого раза.

    Рекомендую так же проанализировать ваш вариант с Preferences, если в нем не будет таких "багов", то это уже хорошо, несмотря на топорность. :)
    Хотя не такое уж и топорное, сам UNIX многое хранит в файлах, и что.
    Зато такой анализ полезнее, чем просто найти готовое решение в Android и надеяться, что вы все правильно сделали и что оно подойдет (хорошо, если это вообще так).
    Ответ написан
    Комментировать
  • Как спарсить токены для авторизации в андроид приложении?

    Rou1997
    @Rou1997
    Отладка сети - снифферами на самом Android, либо запустить в эмуляторе, а сниффер установить на хосте (компьютере, где эмулятор), для проксирования запросов от гостевой ОС.
    Отладка исполняемого кода приложения, а также дизассемблирование и декомпиляция.
    Ответ написан
    4 комментария
  • Как дисассемблировать или декомпилировать приложения на Андроиде?

    Rou1997
    @Rou1997
    Я слышал про apktool + dex2jar + jd-gui

    Apktool, который основан на smali, сравнительно "годен" именно как дизассемблер и ассемблер "обратно", не путать с декомпиляцией, а JD-gui это "ширпотреб" как и Fernflower (IntelliJ IDEA Decompiler, AndroChef Decompiler), есть декомпиляторы менее популярные но в чем-то гораздо более эффективные, у меня уже девять декомпиляторов Java, и все "годные", не декомпилируется функция одним, я беру другой, а еще вы про отладку забыли, и если JNI то еще нужен NDK (именно весь, а не только gdb) и IDA + Hex-Rays.
    Ответ написан
    Комментировать