Ответы пользователя по тегу Java
  • Где найти реализацию ContextMenu в Android?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988

    Если коротко, то мне нужно создавать контекстное меню, без активности.

    Я не знаю зачем Вам это, но сам добавляю пункт "Печатать" в меню выделенного текста так
    <activity
                android:name=".ui.TextActivity"
                android:configChanges="keyboardHidden|orientation|screenSize"
                android:exported="true"
                android:label="@string/label_text">
                <intent-filter>
                    <action android:name="android.intent.action.PROCESS_TEXT" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <data android:mimeType="text/plain" />
                </intent-filter>
            </activity>

    Как это сделать без активити ? Думаю никак. В 13-ом таймаут до ANR, если активити не получит фокус в видимый на экране элемент урезали по самые гланды.

    Или Вы про android.view.ContextMenu ?
    Не уверен, что его перенесли в androidx. Никогда не использовал, мне хватало типа диалог у дропбокса.

    Если очень хочется попробуй через программное создание алерт диалога.

    Вы хотите аналог менюшки по правому клику мышки на десктопах сделать по длинному клику?

    Тогда представьте, что там каждая строка не меньше 48dp по высоте. (типовое требование к зонам кассания)
    И для пользователяй скорее всего придется писать инструкции. Отучили их, что реакция может отличаться по тапу.
    Ответ написан
    2 комментария
  • Почему не загружается аудио файл на сервер?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Тут разные подходы к тому как делаются запросы к серверу.
    Вы правильно поняли, что нужен класс посредник, который перекодирует в ожидаемый PHP от апача формат.
    Но не разобрались с ним до конца.
    С моей точке зрения проще на беке подстроиться к тому как java шлет данные.
    $data_in = file_get_contents('php://input');
    и уже с ними работать. Но это личное мнение, так как на PHP у меня опыта на 15 лет больше чем в яве
    Ответ написан
    Комментировать
  • Как удалить все уведомления с помощью Accessibility?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Удали приложение, которое спамит.
    Так как если запретить/удалять эти уведомления "приложение выполняет фоновую работу", оно од ин фиг не сможет работать корректно
    Ответ написан
  • Почему пишет что приложение не установлено?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Note: If your app targets Android 11 (API level 30) or higher, the methods in this class each return a filtered list of apps. Learn more about how to manage package visibility.
    Ответ написан
    Комментировать
  • Как в Android Studio добавить SDK Атол SmartSlim?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    во первых, Вам придется решить вопрос. Вы пишете приложение только под этот терминал
    или нет. Если программа будет более универсальной, то придется решать каким образом она будет
    работать на других. Толи у вас несколько вариантов релиза или в рантайме проверяете.

    В основе сдк нативная либа (.so файл), который будет правильно работать только на их оборудовании.
    А если платформа не arneabi, то просто сразу прокрешиться.

    Дальше в состав SDK входит java класс, который делает мепинг вызовов из явы в нативную часть.

    https://habr.com/ru/companies/otus/articles/844110/

    В конце концов у вас там в папочке src пример приложения
    Ответ написан
    Комментировать
  • Как запустить приложение сразу после установки?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Разработчик на своём телефоне может. Готовое АПК само себя нет. Если у тебя разбит экран, то ничего накатить нового не получиться. Если картинку видно, то можно мышь проводную попробывать.
    Ответ написан
    Комментировать
  • Как работать с большими json файлами, которые получаются по запросу в Андроид приложении?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Задача тестовая.
    И первый подтест вы провалили.
    Справочник Название места отправления/прибытия в код условно постоянный.
    Здесь его можно зашить в приложение. А значит потребуются знания о преднаселении пустой базы данных и создания миграций (новый/удален населенный пункт).
    Ответ написан
    4 комментария
  • Как добраться до поля, помеченного @UnsupportedAppUsage?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    Field netRef = netInfo.getClass().getDeclaredField("netId");
     netId = (int) netRef.get(netInfo);

    Как подсказали в коментариях называется рефлексией.
    гуглить "Guide to Java Reflection"
    Ответ написан
    Комментировать
  • Как рутировать устройство?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Чешир, вот уже год Вы перебираете вещи, которые давно перестали работать из-за новых ограничений андроид.
    Но в этом вопросе Вы затронули вещь, которая никогда не работала нормально.
    Рутование всегда было основано на эксплуатации уязвимостей.
    Атака никогда не шла из обычной программы. Это делалось все ниже (до нормальной загрузки устройства).
    Подделаное системное обновление (кастомная прошивка). Компроментированный ключ поддиписи редкость.
    Искали и ломали загрузчик (аналог биоса для ПК)
    Ответ написан
    Комментировать
  • Android studio при попытке открыть файл для парсинга упорно его не видит, какие могут быть причины?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Начиная с 12го проще считать, что файлов в андроиде нет. Есть потоки и контент провайдеры. Огрызки файлового доступа остались в двух местах.

    File file = new File(context.getFilesDir(), "test.xml");

    и аналогично к директории кеширования.
    Раз файл не находит, то очевидно проблема в том как он оказался записан по пути

    /data/user/0/com.example.myapplication/files/test.xml

    Из строк дальше читается, что вы хотите заселить свою базу данных.
    Начальные данные (xml) поместите в assets так как из дистрибутива по используемому пути автоматом ничего не попадет. Сделайте копирование, если напрямую не получиться читать
    private void copyPdfFromAssets() {
            executor.execute(() -> {
                try {
                    InputStream inp = getAssets().open("IppVirtual.pdf");
                    java.io.File file = new java.io.File(getApplication().getCacheDir(), "preview.pdf");
                    FileOutputStream fos = new FileOutputStream(file);
                    byte[] buf = new byte[32768];
                    int len;
                    while ((len = inp.read(buf)) != -1) {
                        if (len > 0) {
                            fos.write(buf, 0, len);
                        }
                    }
                    fos.flush();
                    fos.close();
                    inp.close();
                    handler.post(this::createPreview);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
        }

    Вот подобный кусок из моего свежего приложения.

    А если смотреть дальше, то заполнение базы данных гуглить как "android prepopulate room database"
    кто-то копирует готовый файл, а мне пару записей проще заполнить выполнением захардкоженных запросов
    Ответ написан
    Комментировать
  • Что в ответе на вопрос, отвечает за фикс белого экрана при холодной загрузке?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://developer.android.com/develop/ui/views/lau...
    Ситация со сплеш скринами за 7 лет поменялась.
    Хотя совет создать стиль, где в качестве фона лежит drawable все еще актуален для версий ниже 12.
    Ответ написан
  • Есть готовый EditText для ввода размеров изображение?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    Закрываю . Написал свой
    Ответ написан
    Комментировать
  • Есть ли SDK у метамаск?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вот прямо сейчас у себя в проекте скрешиваю java & kotlin.
    Пришлось форкнуть опенсорс на котлине из-за того, что он был слишком правильным.
    Исходная либа кидает в нескольких местах исключения на неправильные исходные (полученные от реального перефирийного устройства) данные.

    build.gradle.kts  проекта пришлось дополнить 
    plugins {
        id("com.android.application") version "8.2.1" apply false
        id("org.jetbrains.kotlin.android") version "1.9.10" apply false
        id("org.jetbrains.kotlin.jvm") version "1.9.0" apply false
    }
    
    в такой же файл приложения
    plugins {
        id("com.android.application")
        id("org.jetbrains.kotlin.android")
    }
    android {
       ....
        kotlinOptions {
            jvmTarget = "1.8"
        }
      .....
    }
    dependencies {
        implementation("androidx.core:core-ktx:1.12.0")
    }


    либа, которую я форкал изначально предполагала взаимодействие из java
    по коду раскиданы собачка JvmOverloads , JvmField, JvmStatic, set:JvmSynthetic
    Ответ написан
    Комментировать
  • Стоит ли делать обработчик ошибок в библиотеке?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Скорее всего мы пишем на разных с вами ЯВУ. И термин ошибка для меня немного другое.
    Есть понятие Exception & Runtime Error, которые для меня лучше описывают ситуацию, которую вы хотите ловить.

    Поэтому мне проще писать в стиле водопада успеха, а сбои ловить через try{}catch
    Я пишу под мобилки и например текстовые ресурсы приходится локализовать на кучу языков.
    Добраться до них из/в подключаемые библиотеки непросто. Удобнее ловить конкретный эксепшен уже в основном коде.
    Ответ написан
    Комментировать
  • Как считать данные с файла который расположен во внешнем хранилище анроид java?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сейчас проще самому скачать файл с сети, чем пройти модерацию с нужными пермишинами
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
            tools:ignore="ScopedStorage" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="30"/>
        <application
    ...
            android:requestLegacyExternalStorage="true"
    Ответ написан
    Комментировать
  • Почему я получаю NullPointerException?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    createScreenCaptureIntent забыли вызвать. getMediaProjection используется для извлечения данных из интента ответа
    Ответ написан
    Комментировать
  • Почему не запрашивает доступ к разрешению?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    посмотрите еще раз на свой requestPermissions()
    запросить, запустить активити,запросить

    так не сработает . андроид три разных экрана одновременно должен открыть по вашей логике

    несколько пермишинов запращиваются добавлением в массив строк, а не повторными вызовами.
    переход к настройкам отдельная задача
    Ответ написан
    Комментировать
  • Как вызывать метод в Java определенное количество раз?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Должна быть переменная ЧИСЛО Вопросов
    Ещё одна ТЕКУЩИЙ.
    Пока текущий меньше ЧИСЛО, то +1 и показать следующий.

    Прочитай про жизненный цикл активити.
    И про то как сохранять переменные . Савестейт.

    Без этого при повороте экрана все будет обнуляться
    Ответ написан
  • Как в Android отследить изменения clipboard при свёрнутой activity на версиях новее Android Oreo?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    из плея выпилился целый класс приложений менеджеров буфера обмена.
    Единственная возможность осталась у приложений клавиатур . Должны быть активным способом ввода. Всем остальным порезали доступ. Только когда твоя активность на верху и в фокусе.
    Ответ написан
  • Почему неверно отображается текст в TextView (Java Android)?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Ширину и высоту и прибитого с 4х сторон элемента лучше указывать как 0dp
    Ответ написан
    Комментировать