Ответы пользователя по тегу Android
  • Как изменить название getPackageName?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://github.com/YehiaAliYehia/Notes/blob/b4cc81...

    https://github.com/YehiaAliYehia/Notes/blob/b4cc81...

    https://github.com/YehiaAliYehia/Notes/blob/b4cc81...

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

    https://docs.gradle.org/current/dsl/org.gradle.api...

    В строковый ресурс не стали городить цепочку и просто вбили еще раз
    может это не все. Глубже не копал
    Ответ написан
  • Бинд IP->MAC-адрес и проброс портов с Андроида на ПК?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вашу задачу решают устройства по типу Hame 3G Wi-Fi Router. Клонов и аналогов много. Лучше поддерживающие OpenWRT. Цена у них от 10 долларов. Программу для андроида с желаемыми функциями нельзя публиковать.
    Даже если найдете, то работать надежно не будет. Андроид и функции сервера вещи не совместимые из-за архитектурных особенностей андроида.
    Ответ написан
    2 комментария
  • Почему не меняется иконка уведомления?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Отвечаю на вопрос "шо делоть"
    открываете
    https://developer.android.com/reference/androidx/c...
    жмете Ctrl(Cmd)+F
    печатаете Icon
    Если 7-я найдена подстрока не поможет, то не знаю

    зы аккуратнее с чужими иконками - акка разраба разрешено регистрировать 1 раз в жизни
    Ответ написан
    2 комментария
  • Может ли прошивка телефона андроид помочь от взлома,удаленного доступа к нему?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    FileChannel channel = escPosEmulator.randomAccessFile.getChannel();
    MappedByteBuffer map = channel.map(FileChannel.MapMode.READ_WRITE, buf.getRowBytes()* escPosEmulator.output_height , buf.getRowBytes()*height);
     buf.copyPixelsToBuffer(map);
     escPosEmulator.output_height += buf.getHeight();


    Есть у меня эмулятор. После того как он обработал команды и отрисовал буфер строки, я его сохраняю в файл.

    Когда обработка завершена
    if (escPosEmulator.output_height > 0) {
        Bitmap out = Bitmap.createBitmap(escPosEmulator.max_dots, escPosEmulator.output_height, Bitmap.Config.ARGB_8888);
        FileChannel channel = escPosEmulator.randomAccessFile.getChannel();
        MappedByteBuffer map = channel.map(FileChannel.MapMode.READ_WRITE, 0, out.getRowBytes() * out.getHeight());
        out.copyPixelsFromBuffer(map);
        channel.close();
                                       
     }


    получаю картинку обратно в память.
    В результате я работаю обычно с 32 пикселями в высоту.
    Суммарную высоту программно ограничил в 32 тысячи пикселей. А то потом штатные просмотровщики виснут.

    Это нативные функции java под андроидом. Поищите аналоги сишарпа для прямой работы с файлом и байтовым представлением битмапа .
    Ответ написан
    Комментировать
  • Как правильно, в android java, передать константу в другой класс?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    не надо так делать.
    прочитайте про .setOnClickListener
    в качестве параметра в него передается View
    Ответ написан
  • Как передавать id сессии к api на нативных мобильных приложениях?

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

    Так как данные ходят по https, то из трафика сложно вычленить логин и т.д.

    Со стороны PHP маленькая заморочка. Данные нужно доставать из голого потока (пусто в _POST, _GET), одна лишняя строка кода
    json_decode(file_get_contents('php://input'));
    Ответ написан
    Комментировать
  • Как сформировать путь к библиотеке из gitlab?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://jitpack.io/
    Вроде бы все расписано.
    Саму библиотеку даже не нужно специально описывать как для мавен.

    settings.gradle в корне
    include ':library'
    rootProject.name='How to make a library'

    library/build.gradle
    plugins {
    id 'com.android.library'
    }
    в общем обычный такой конфиг для либы, только он теперь лежит не рядом с проектом, а имплементиться.
    Ответ написан
    3 комментария
  • Знает ли кто примеры android приложений, дающих оплатить через vk pay?

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

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Разбит тач - поможет мышка .
    Разбит экран- только цеплять другой.
    Без визуального отклика не реально сделать следующие шаги.
    Снять блок.
    Зайти в настройки и включить режим разработчика.
    Включить режим отладки.
    Дать разрешение конкретному ПК.
    Тут ещё кнопка,то слева, то справа рисуется.
    Ответ написан
    Комментировать
  • Как загрузить файл в папку загрузок с именем файла от сервера?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Долго не мог понять в чем проблема.
    У вас урл к динамике, где изначасльно не известно имя файла.
    Знаю только один способ. Сперва делаете запрос к серверу за именем файла (только заголовки без самого тела)
    https://stackoverflow.com/questions/23069965/get-f...
    потом уже обращаетесь к менеджеру закачек
    Будет работать, если сервер поддерживает HEAD запросы.
    Попробуйте сперва curl'ом с компьютера , будет ли работать в принципе с вашим бакендом.
    Ответ написан
    Комментировать
  • Как отправить текст с компьютера на терминал android через bluetooth?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://askubuntu.com/questions/248817/how-to-i-co...

    А вот, что Вы запустите на андроиде уже знаете ?
    Ответ написан
    Комментировать
  • Как сохранить Uri в директории приложение?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

    сразу советую . Ищите решение не требующее этого (MANAGE_EXTERNAL_STORAGE") разрешения.
    Только на прошлой неделе ругался с модерацией из-за reject по этой причине.

    Лучше сохраните в галерею.
    mContext.getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values);

    В этом случае пермишен нужен только для младших версий
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />

    11 и 12 разрешат сохранить молча. Ниже придется просить сперва пермишен.

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

    Если для целей кеширования, то у меня вот так сделано
    static public @Nullable
        Uri cacheUri(Uri uri, Context context) throws IOException {
    
    
                InputStream inputStream = context.getContentResolver().openInputStream(uri);
                if (inputStream != null) {
    
    
                    java.io.File outputDir = Objects.requireNonNull(context).getCacheDir(); // context being the Activity pointer
                    java.io.File outputFile = java.io.File.createTempFile("spool_job_", "",outputDir);
    
                    BufferedInputStream input = new BufferedInputStream(inputStream);
                    BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(outputFile));
    
                    // read and write into the cache directory
                    byte[] bArr = new byte[8192];
                    while (true) {
                        int read = input.read(bArr);
                        if (read < 0) {
                            break;
                        } else {
                            output.write(bArr, 0, read);
                        }
                    }
                    // close the streams
                    input.close();
                    output.close();
                    return Uri.fromFile(outputFile);
                }
    
            return null;
        }
    Ответ написан
  • Android Studio для слабых ПК (2014)?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    14-15 год, Если только писать под актуальные на тот момент версии андрода.
    Ценность студии в анализе на лету кода.
    Если сильно захотеть, то собрать приложение можно без установленной на компьютере студии.
    И редактировать хоть в блокноте. Отлаживать на реальных устройствах .

    Но имхо комп/ноут должен тянуть режим редактирования кода без раздражающих в ходе редактирования лагов.
    Нормально отрабатывать автокомплит и подсветку проблемных мест.
    Поэтому студия не старее чем для актуальной в плее версии андроида. Сейчас 12 (Вкрайнем случае 11)
    2014-2015 ну не зналли тогда еще даже про 9й андроид.

    Пробывал в феврале запускать студию на слабом ноуте (Китайский ноунейм)
    Марка процессора/модель: Intel Celeron N3350
    Объем оперативной памяти: 6 ГБ
    SSD: 256G
    Работает но очень - очень медленно. Работать можно только от блока питания. Но и тогда на запуск скомпиленного приложения нужна минута.
    Ответ написан
    1 комментарий
  • Где я могу найти двоичные файлы для создания прошивки?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://4pda.to/forum/index.php?showtopic=892755&s...
    переписывает boot.img и раздел /system... Раздел vendor остаётся на месте
    В общем вот
    https://4pda.to/forum/index.php?showtopic=892755
    Ответ написан
  • Как в BroadCast Receiver включить сокет?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://developer.android.com/guide/components/int...
    первое что броилось в глаза typeof
    Для javы передается класс
    Intent downloadIntent = new Intent(this, DownloadService.class);
    вариант для котлин
    val downloadIntent = Intent(this, DownloadService::class.java)
    Ответ написан
  • Возможность монетизации мобильных приложений через подписную модель?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Примеры приложений в плее, которые не нарушают правила принимая оплату в другом месте:
    1. Клиенты облачных хранилищ (человек может получить доступ через веб интерфейс и клиентов для других платформ)
    2 Сервисы фильмов и музыки (продается контент а не функции программы)
    3 У драйвера принтера хьюлета есть возможность ввести логин / пароль для каких то энтерпрайзных фишек
    Но опять же там есть дополнительная внешняя полноценная инфраструктура облачной печати
    4 Sip / voip клиенты. приложение бесплатный клиент к платной услуге

    Ну и главное все альтернативные варианты должны быть не дешевле чем через сам плей.
    Без рекламы (фактически упоминания) их в самом приложении и сайте программы (модераторы при беглом просмотре их не увидели).
    Ответ написан
  • Как убрать design editor is unavailable until after a successful project sync и сделать чтобы оно работало?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Пересборка точно усешна ?
    Н-р вчера подымал таргет апи до 31 и сборка заверщалась на стадии мержа манифестов

    Clean up project или эквивалентно удалению ручками папок build
    не помогло

    ivalidate caches and reboot IDE
    пункт который делаю всегда если причина ошибки не понятна (код верный - но не собирается)

    Ну и одно время я дисигн режимом не пользовался. При обновлении ИДЕ чтото накрутили.
    На реальных устройствах все работает, а тут капризничает
    Ответ написан
    Комментировать
  • Кто уже поправил deep link на чужой host под Android 12?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    В общем суть - отправляем пользователя к настройкам
    по другому не нашел

    У себя прикручивал к преференс фрагменту
    <SwitchPreferenceCompat
                app:defaultValue="false"
                android:persistent="false"
                app:key="openLink"
                app:title="Ссылки на чек"
                app:summaryOn="обрабатываются этим приложением"
                app:summaryOff="действие по умолчанию в Android">
            </SwitchPreferenceCompat>
    
            <Preference
                android:key="pref_static_field_key"
                android:selectable="false"
                android:persistent="false"
                android:summary="Чтобы вместо перехода на сайт налоговой, происходила обработка приложением, потребуется подтвердить выбор в системных настройках.\nОткрывать по умолчанию - Добавить ссылку - Поставить галочку"/>

    в рут преференс добавил два фиктивных элемента android:persistent="false"

    упростил функцию проверки под свои цели
    @RequiresApi(api = Build.VERSION_CODES.S)
        private boolean checkLinkAssociation() {
    
            Context context = requireActivity();
            DomainVerificationManager manager;
            manager = context.getSystemService(DomainVerificationManager.class);
            DomainVerificationUserState userState;
            try {
                userState = manager.getDomainVerificationUserState(context.getPackageName());
            } catch (PackageManager.NameNotFoundException e) {
                return false;
            }
            Map<String, Integer> hostToStateMap = userState.getHostToStateMap();
            for (String key : hostToStateMap.keySet()) {
                Integer stateValue = hostToStateMap.get(key);
                if (stateValue != null && stateValue != DomainVerificationUserState.DOMAIN_STATE_VERIFIED && stateValue != DomainVerificationUserState.DOMAIN_STATE_SELECTED) {
                    return false;
                }
            }
    
            return true;
        }


    в onCreatePreferences запомнил для использования в онресуме и повесил интент
    prefOpenLink = findPreference( "openLink");
            if (prefOpenLink != null) {
                final Intent i = new Intent();
                i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                i.addCategory(Intent.CATEGORY_DEFAULT);
                i.setData(Uri.parse("package:" + requireActivity().getPackageName()));
                prefOpenLink.setIntent(i);
            }


    ну и статус свитча ставлю текущий
    @Override
        public void onResume() {
            super.onResume();
            if (prefOpenLink != null) {
                boolean status = true;
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                    status = checkLinkAssociation();
                }
                prefOpenLink.setChecked(status);
            }
        }
    Ответ написан
    Комментировать
  • Как проще всего сделать apk приложение из html и css файлов?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    А смысл ? В плей ака разработчика не оплатить.
    Такие поделки модерация не пропускает или со временем банит.

    Если для спортивного интереса, то ставишь Android Studio .
    Новый проект по шаблону Empty Activity
    Удаляешь с лайаута Hello
    Кладешь виджет WebView (назначаешь ему id н-р myBrowser)
    Создаешь папку app\src\main\assets
    Заливаешь туда свой html

    Идешь в код MainActivity в оnCreate добавляешь 2 строчки
    WebView webView = findViewById(R.id.myBrowser);
            webView.loadUrl("file:///android_asset/index.html");


    ну а дальше придется немного почитать самому, чтобы там явоскрипт заработал и прочие тонкости
    Ответ написан
    Комментировать