Ответы пользователя по тегу Android
  • Где найти реализацию 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 комментария
  • Как происходит управление приложениями в Android?

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

    Эти привилегии есть только у "Установщика пакетов" и PlayMarket.

    Тут Вы не правы. В андроид дополнительная система разрешений (permissions), а не только битовые флаги у файла (chmod прав доступа к файлам и каталогам )

    Устанавливать другие приложения это INSTALL_PACKAGES. Можно и уже написали свои приложения для установки. Например: RuStore.

    гугл/эпл запили систему для зарабатывания денег в партнерстве с разработчиками.
    Майкрософт не набрался наглости запретить обычные установщики.
    В дистрибутивах юниксов магазины менее распространены, основной способ пакетные менеджеры (apt-get и прочие)

    В общем на ПК не уместно ограничивать пользователя в самовыражении.
    Но именно это обычно делают администраторы в офисах.
    Есть рут/Администратор привелигированная учетная запись. Заводят обычного пользователя.
    И начинают органичивать права на папки и конкретные программы.
    Смотри флаги chmod.
    Проще всего настроить случай когда пользователь может только создавать/удалять/читать файлы в личной папке, но не может из нее запустить программу. И набор программ, которые он может запускать ограничен.
    А вот право что-то ставить новое не дают. Это только по служебке через сисадмина. Так как штрафы за пиратку.


    подобное сделать в десктопном линуксе

    Возможно (пишите свой дистрибутив). Но даже MacOS не давит все остальные способы. Просто просит пароль и дать согласия на вносимые изменения.
    Ответ написан
  • Почему не загружается аудио файл на сервер?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    В андроид давно уже есть функция "компаньон". Compain bluetooth device
    https://developer.android.com/develop/connectivity...
    Так вот в списке сопряженных устройств может не быть устройства компаньона, а конкретное приложение с ним будет соединяться. Дружаться вместе "приложение и устройство".

    Вспомни HAVку с какой програмой мог сопрячь ?
    Ответ написан
  • Штатное приложение камеры. Можно ли CROPу скормить ури как для TAKE?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    CropExtras(extras.getInt(CropExtras.KEY_OUTPUT_X, 0),
                        extras.getInt(CropExtras.KEY_OUTPUT_Y, 0),
                        extras.getBoolean(CropExtras.KEY_SCALE, true) &&
                                extras.getBoolean(CropExtras.KEY_SCALE_UP_IF_NEEDED, false),
                        extras.getInt(CropExtras.KEY_ASPECT_X, 0),
                        extras.getInt(CropExtras.KEY_ASPECT_Y, 0),
                        extras.getBoolean(CropExtras.KEY_SET_AS_WALLPAPER, false),
                        extras.getBoolean(CropExtras.KEY_RETURN_DATA, false),
                        (Uri) extras.getParcelable(MediaStore.EXTRA_OUTPUT),
                        extras.getString(CropExtras.KEY_OUTPUT_FORMAT),
                        extras.getBoolean(CropExtras.KEY_SHOW_WHEN_LOCKED, false),
                        extras.getFloat(CropExtras.KEY_SPOTLIGHT_X),
                        extras.getFloat(CropExtras.KEY_SPOTLIGHT_Y));

    откопал в исходниках.
    Теперь разбираюсь с новой проблемой. А как GRANT пермишен на ури, что в экстара давать на запись.
    Ответ написан
    Комментировать
  • После удаления приложения и установки, приложение видит старый аккаунт и предлагает авторизоваться в этом аккаунте?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Не гадай, а почитай секцию на странице описания приложения в плее "Декларация/Заявление о персональных данных"
    https://support.google.com/googleplay/android-deve...
    все что приложение использует - должно быть явно упомянуто.

    из условно анонимных еще есть рекламный идентификатор устройства. На сколько помню. Каждому приложению он выдается свой, но не меняется до тех, пор пока сброс до заводских не сделаешь. Я рекламу не вкручиваю в приложение, поэтому когда-то краем глаза про него прочел.
    Ответ написан
  • Как удалить все уведомления с помощью Accessibility?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://developer.android.com/reference/androidx/m...
    если только через это апи раскрутите.
    Ответ написан
    Комментировать
  • Почему пишет что приложение не установлено?

    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, как настроить?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Скорее всего сам запретил приложению запускать.
    По системным приложениям лазил ? Лишний на ваш взгляд мусор удаляли / запрещали (дизайблили) неудаляемые?
    Штатно это приложение Markup. Но вендоры могли и свое придумать.

    Ну или пермишины запретили/отозвали/отозвались автоматом.

    Еще чудеса бывают в режиме экономии батарейки. Например, перестает работать клавиатура.
    Ответ написан
    Комментировать
  • Возможно ли прошить китайский планшет?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    присоединяюсь к ответившим ранее. Доктор сказал в морг - значит в морг.
    А если серьезно, то простой пользователь может только поискать на https://xdaforums.com/ или 4pda.to
    нет ли готового лекарство от гиков/гуру.

    Вы сами пишите, что ваш планшет явный фейк.
    https://pikabu.ru/story/kogda_obmanuli_vo_vsem_izu...
    почитайте. Можете подарить ему для экспериментов.

    Почему крешиться Freestyler ? Так вот скорее всего это связано с нотифи. Этот кусок кода приходиться писать с учетом версии андроид. Ниже 8ки по одному, для 8+ (11-го) андроида по другому. А вот методов нужных в фейковой прошивке нет. И такая беда, не только с уведомлениями.

    Пытаться его довести до честной версии. Рутануть и переправить.
    Ответ написан
    Комментировать
  • Как передать context в viewModel?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    вместо ActivityCompat.checkSelfPermission(this,
    можно обратиться так
    public boolean hasPermission(AppCompatActivity activity) {
            return activity.checkSelfPermission(ИМЯ ПЕРМИШЕНА)
                    == PackageManager.PERMISSION_GRANTED;
    }

    то есть передать активити как параметр.
    Но конкретно с BLUETOOTH_SCAN я предпочитаю вообще не связываться, а работать через механизм Complain Bluetooth

    https://github.com/402d/qrdisplay-sdk/blob/main/sr...
    Ответ написан
  • Как в Android Studio добавить SDK Атол SmartSlim?

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

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

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

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

    В конце концов у вас там в папочке src пример приложения
    Ответ написан
    Комментировать
  • Аналог в REALME UI для Settings.ACTION_PRINT_SETTINGS?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    Пришлось писать такой велосипед.
    Если для события есть, несколько получателей, то использовать первый из тех, что не совпадает со штатным
    PackageManager packageManager = requireActivity().getPackageManager();
    Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
    
     List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent,
                        PackageManager.GET_RESOLVED_FILTER);
    
                try {
                    if (resolveInfos.size() > 1) {
                        for (ResolveInfo resolveInfo : resolveInfos) {
                            if (resolveInfo.activityInfo != null) {
                                String packageName = resolveInfo.activityInfo.applicationInfo.packageName;
                                if (!"com.android.settings".equals(packageName)) {
                                    intent.setPackage(packageName);
                                    break;
                                }
                            }
                        }
                    }
                } catch (Exception ignored) {
                }
    
                try {
                    startActivity(intent);
                } catch (Exception e) {
                    Toast.makeText(requireActivity(), R.string.Oopppsss, Toast.LENGTH_SHORT).show();
                }
    Ответ написан
    Комментировать
  • Как можно "осовременить" старые Андроиды?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    9ка хороша тем, что на ней не зарезан доступ к телефонии. Не буду здесь писать название.
    Есть такой комплекс. Андроид приложение. Сервер бакенда. И апи к нему.
    Все вместе позволяет организовать интересное решение для бизнеса.
    Доступ к записям разговоров на контактные телефоны. Уведомление о входящих и пропушенных звонках.
    Так менеджеру сразу открывается на экране компьютера карточка клиента, звонок которого
    поступил. Вишенкой на торте возможность слать смски из CRM через эти же телефоны.
    Ответ написан
    Комментировать
  • Как запустить приложение сразу после установки?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Буду очень удивлен, если найдете такое приложение в плее.
    а) Захват картинки с камеры возможен, только в активной активити, которая показывает хотя бы микро картинку.
    б) Событие клика легко передать через adb (с внешнего устройства), а вот приложению запущенному в режиме поверх других окон ранее было нельзя (интересно как выкручивается тимвьювер)

    В принципе, на уровне ядра(прошивки) сделать такое можно, а вот как публичное приложение для всех моделей имхо не реализуемо
    Ответ написан
  • Как применить шрифт из файлов пользователя?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    permission.READ_EXTERNAL_STORAGE - табу / красная тряпка для модерации
    считается что приложения должны работать со своими файлами в песочнице -
    своих папках КЕШ (можно удалить при нехватке места на телефоне) и ФАЙЛЫ (равнозначно новой установке)

    Зашить файл в дистрибутив можно через Raw ресурсы или через Assets.
    Можно включить(преднаселить) минимум, а остальное нужное скачивать по запросу.

    Но применительно к шрифтам можно взять готовое решение для Google Fonts
    https://developers.google.com/fonts/docs/android?hl=ru
    Ответ написан
    2 комментария
  • Как работать с большими json файлами, которые получаются по запросу в Андроид приложении?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    У Вас Android выше 11го. В новых версиях ввели кучу ограничений на доступ ко всем файлам.
    Пробуй так.
    Найти проводник файлов от производителя телефона.
    Найти этот iso файл.
    Долгий клик на нем.
    Открыть в ....
    Поискать в списке программ ваш эмулятор.
    Ответ написан