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

    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");


    ну а дальше придется немного почитать самому, чтобы там явоскрипт заработал и прочие тонкости
    Ответ написан
    Комментировать
  • Как сделать службу (service) не выключаемой?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Если приложение для личных целей, то можно попробывать наколхозить
    Добавить его в исключения энергосбережения. (Тут по разному. Гугли don't kill my app)
    Добавь перезапуск по событиям
    <receiver>
    <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
    
                    <category android:name="android.intent.category.HOME" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.USER_PRESENT" />
    
                    <category android:name="android.intent.category.HOME" />
                </intent-filter>
    
    </receiver>

    еще хорошо повесить слушателей на изменение состояния сетевого адаптера (вайфай) для переконекта

    Если для широкой аудитории, то лонгпулы уже все перестали использовать.
    Используется схема FCM + шедуле опрос сервера
    Ответ написан
  • Как настроить Gradle для запуска Android приложения?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://stackoverflow.com/questions/67782975/how-t...

    Что из последнего добавленого в 7.4 Вы используете, чего нет в 7.3.3 ?
    Ответ написан
  • Android TV где можно получить полную документацию?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    На готовый пример сильно не смотри.
    Чтобы приложение прошло модерацию
    https://developer.android.com/training/tv/publishi...

    Если свести к одной фразе "Комфортно управлять приложением пультом с растояния 5 метров при идеальном зрении"

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

    <uses-feature
            android:name="android.software.leanback"
            android:required="false" />
        <uses-feature
            android:name="android.hardware.touchscreen"
            android:required="false" />


    чтобы запускался не только на андроид тв , второе чтобы запускался на телевизорах

    <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
                </intent-filter>


    Маин активити, чтобы стартовала на ATV

    <receiver
                android:name=".tv.RunOnInstallReceiver"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.media.tv.action.INITIALIZE_PROGRAMS" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </receiver>
    
            <service
                android:name=".tv.AddMenuService"
                android:exported="true"
                android:permission="android.permission.BIND_JOB_SERVICE" />


    Это вынести на главный экран ATV свою строчку превьюх

    Ну а остальное - адаптация под навигацию с кнопок

    android:focusable="true"
    первый твой друг - чтобы элемент можно было выбрать кнопками

    android:nextFocusXX
    В разных вариантах - чтобы правильно переходило между элементами

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item  android:state_focused="true">
            <shape android:shape="rectangle" >
                <solid android:color="@color/colorPrimary" />
                <stroke
                    android:width="3dp"
                    android:color="@color/border_blue_btn" />
    
            </shape>
        </item>
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="@color/colorPrimary" />
            </shape>
        </item>
    </selector>
    
    Придется освоить подобное в дравебле
    Ответ написан
    Комментировать
  • Как правильно импортировать проекты в Android Studio?

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

    Легаси 7 летнее. Студией вы его автоматом не обновите
    'com.android.tools.build:gradle:1.1.0'
    compileSdkVersion 21
    minSdkVersion 14

    Проще начинать новый проект с нуля и переносить код по частям, заменяя устаревшие вещи .
    Фактически там почти все придется переписать
    Ответ написан
    3 комментария
  • Как на Андройд получить путь к файлу из Гугл Диска?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Комментировать
  • Почему медленно считываются данные с акселерометра (Java, Android Studio)?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    textView1.setText на каждый чих плохо.
    переделай чтобы обновлял не чаще 1го раза в 100мс
    Ответ написан
    Комментировать
  • Как прошить планшет bliss Pad R9020 с Андройд 4.0.3 до Андройд 12?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    а сравнить технические требования ? до 6 гиг оперативной памяти Вы его уже нарастили ?

    At least 6GB of RAM
    At least 400dpi and 1080p resolution
    At least 150MB/s sequential write, 250MB/s sequential read, 10MB/s random write, and 40MB/s random read speeds

    врядли кто будет кастомную прошивку на него собирать

    Ой. А 4.0.2 для него уже апгрейд была. Старичок то с 2.3 шел
    Ответ написан
    Комментировать
  • Потеря оплат от пользователей из РФ в Google Play в условиях санкций, что делать?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Ждите магазин NashStore
    Публикуйте в магазине хуавей
    Отдельная версия на своем сайте и свой сервис подписок.

    А я просто на 4пда выложил бесплатный вариант для русскоязычных (мое приложение в РФ мало популярно. всего 10-20 покупок в месяц)
    Ответ написан
    Комментировать
  • Как нажать на "кнопку" в приложении в ОС Android через скрипт/консоль?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вы можете написать приложение "плитку" легко.
    Но вот "нажимать на кнопку" в чужом приложении задача не самая простая. Через ADB передать клик мыши просто,
    не возможно это сделать из запущенного на самом телефоне приложении.
    Рутовать и переписывать ?

    А зачем ? открыть дверь - это запрос к апи бакенда.
    Так проще написать свой альтернативный клиент (авторизация. вызов нужного метода)

    Для домофонов эртелекома(домру) можно вот это взять за основу https://github.com/alexmorbo/domru/blob/master/dom...

    Если не оно, то погуглите может уже кто-то делал.
    Ответ написан
    3 комментария