Статьи, которые добавил aNNiMON: Приложение удалено из Google Play. Issue: Violation of Usage of Android Advertising ID policy and section 4.8 of the Developer Distribution AgreementВам приходит письмо с таким содержанием: Notification from Google Play about APPNAME Hi developers at COMPANYNAME, After review, APPNAME, com.companyname.appname, has been removed from Google Play due to a policy violation. This app won’t be available to users until you submit a compliant update. Issue: Violation of Usage of Android Advertising ID policy and section 4.8 of the Developer Distribution Agreement Google Play requires developers to provide a valid privacy policy when the app requests or handles sensitive user or device information. We’ve identified that your app collects and transmits the Android advertising identifier, which is subject to a privacy policy requirement. If your app collects the Android advertising ID, you must provide Продолжить Рейтинг: 8 (За: 8 | Против: 0) Добавлено: 22.09.2018 от aNNiMON Комментарии (7) Как писать код так, чтобы он рос в высоту, а не в ширинуКаждый раз, когда мы добавляем в код новый if или for, приходится увеличивать отступ тела условия или цикла. Чем больше вложенных циклов и условий, тем шире становится код и начинаются трудности при его чтении. В этой небольшой заметке я покажу несколько приёмов благодаря которым можно избежать роста отступов, чтобы код был понятнее и чтобы в нём никогда не появлялась горизонтальная прокрутка. Продолжить Рейтинг: 16 (За: 16 | Против: 0) Добавлено: 11.09.2018 от aNNiMON Комментарии (36) Открываем YouTube ролики в медиаплеере прямо из браузераЗадача следующая. Есть удобный видеоплеер, который нам очень нравится: mpv, vlc, ffplay или любой другой. При открытии YouTube ролика хотелось бы иметь возможность воспроизвести видео в любимом плеере. Копировать ссылку, запускать плеер и открывать эту ссылку в нём не хочется, долго. Хочется нажать кнопку в браузере и чтобы сразу открывался плеер с нужной ссылкой. Продолжить Рейтинг: 8 (За: 8 | Против: 0) Добавлено: 4.08.2018 от aNNiMON Комментарии (7) Пример использования функционального программирования во избежание дублирования кодаДопустим, перед нами стоит задача загрузить конфиг приложения. Есть внутренний конфиг, который хранится в файле app.properties внутри jar-файла, и есть внешний — хранится в пользовательской директории ~/.config/app.conf. Приложение при запуске читает внешний конфиг. Если какого-то параметра в нём нет, будет браться значение из внутреннего. Если внешнего конфига вообще нет — читается внутренний. Для чтения внутреннего конфига используется класс ResourceBundle и его метод getString(String key), для внешнего — Properties Продолжить Рейтинг: 7 (За: 8 | Против: 1) Добавлено: 17.04.2018 от aNNiMON Комментарии (2) java.util.concurrent ScheduledThreadPoolExecutor как замена классу TimerКласс Timer существует в Java уже очень давно и многие по привычке продолжают использовать его по сей день. Однако, у него есть некоторые неприятные особенности и ограничения. Об этом, а также о классе ScheduledThreadPoolExecutor, который служит заменой классу Timer я и расскажу. Продолжить Рейтинг: 6 (За: 6 | Против: 0) Добавлено: 14.03.2018 от aNNiMON Комментарии (4) Всего: 106 Категории
|