Media scanning

So far, after recording on downloading new media file in order to make system see this file developer had to fire broadcast: sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + context.getExternalFilesDir(null)))); But now, instead of scan proccess, one can get java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED The simplest solution to get rig of this exception is to use MediaScanner: public static void scanFile(Context context, String path) { MediaScannerConnection.scanFile( context.getApplicationContext(), new String[]{ path }, null, new MediaScannerConnection.OnScanCompletedListener() { @Override public void onScanCompleted(String path, …

Google Play services divided into small parts - AT LAST (UPDATE - 7.0)

So far, Google didn't allow developers to use a small parts of Google Play Services library - if you want to use just Google Signup - you had to pull whole big library, which end finally in 65K DEX method limit, or use some strange Gradle modification, which slow down building process. At last Google have listened to developers, and split Google Play Services into small libraries along with version 6.5.87 (current is 7.0.0).   For this version, you can …

Nowe możliwości nowego Gradle

Nowa wersja wtyczki Gradle została wydana 31 października, wraz z wersja 0.9 programu Android Studio, wprowadzając parę nowości. Gradle może od teraz automatycznie usuwać nieużywane zasoby. Dla deweloperów to przydatna opcja, gdyż do tej pory trzeba było do tego uzywać dodatkowych narzędzi. Dodatkowo kolejnym zyskiem jest to, że Gradle usuwa niewykorzystane zasoby nie tylko z naszego kodu, ale co ważniejsze z bibliotek, których używamy. Funkcja runProguard została zastąpiona przez minifyEnabled, gdzie dodatkowo jeszcze mamy shrinkResources. Kolejną fajną rzeczą, którą niedawno …

Genymotion, ADB i problemy

Po jednej z ostatnich aktualizacji zauważyłem ,że bardzo często występuje błąd: adb server is out of date. killing... cannot bind 'tcp:5037' ADB server didn't ACK * failed to start daemon * Po researchu okazało się, że Genymotion używa swojego własnego ADB, które nie do końca jest kompatybilne z najnowszym ADB z Android SDK. Ale na szczęście można to zmienić - w ustawieniach Genymotion jest zakładka ADB, gdzie można zdefiniować ściężkę do Android SDK, i od tej pory Genymotion będzie korzystała …

Generowanie zasobów graficznych w GIMPie

Znalazłem ostatnio w sieci świetny i prosty Script-Fu dla GIMPa do generowania Androidowych resource'ów. Oprócz standardowych ikon launchera, generuje także konfigurowalne grafiki - wystarczy ustawić wartości dla gęstości mdpi, resztę sam przeliczy i wygeneruje. Instalacja jest banalna - pobieramy plik (załączony w tym wpisie), rozpakowujemy go z prawami roota do /usr/share/gimp/2.0/scripts/ lub C:\Program Files\GIMP-2.0\share\gimp\2.0\scripts i restartujemy GIMPa. Skrypt można znaleźć w Script-Fu -> Android -> Save Android Icons.  W pozycji Android icons type można znaleźć następujące typy generowanych zasobów: Launcher Icons …

Nowe Google Analytics API v4 dla Androida

Od wersji 4.0 API Google Analytics dla Androida zostało przeniesione do Google Play Services (hura??!!). Używana wcześniej klasa EasyTracker została usunięta, ale nie oznacza to, że w prosty sposób nie można zaimplementować śledzenia. Do rzeczy... Oczywiście podstawowym krokiem implementacji nowego API jest posiadanie biblioteki Google Play Services. Dla korzystających z Gradle sprawa jest prosta: compile 'com.google.android.gms:play-services:+' Google Analytics API v4 posiada szereg klas pomocniczych i opcji konfiguracyjnych, ale całość wydaje się trochę niejasno opisana. Pierwszym krokiem jest utworzenie plików konfiguracyjnych. …

Zmiany w statystykach platformy Android

W ostatnich dniach coraz częściej się słyszy, że Google zabiera się za fragmentację Androida i producentów, i będzie wymuszać aktualizację systemu do najnowszych wersji. I stwierdzam, że to bardzo dobra tendencja. Ale na rynku ta tendencja też jest bardzo dobrze widoczna, widać to choćby po statystykach wykorzystania poszczególnych API Android.  Jak widać na powyższym wykazie, nadal istnieje pozytywny trend, co odzwierciedla się we wzroście udziału Androida 4.4.x KitKat o 60% w stosunku do poprzedniego miesiąca, z 13,6% aktywnych instalacji. Co do …

OmniROM - alternatywa "nawet" dla stock'a

Od czasów mojego pierwszego telefonu z systemem Android, cały czas eksperymentuje z alternatywnymi ROMami dla tych urządzeń. Testowałem już różne urządzenia, "przerobiłem" też parę różnych ROMów (co można sprawdzić na tym blogu). W chwili obecnej używam Nexusa 4, i również na nim przeszedłem całą "ścieżkę ROMów"... Poczynając od oryginalnych Googlowych (zwanych stock'owymi, do których przy nowych wersjach Androida nie raz wracałem), przez mojego niezawodnego CyanogenModa, po używany w chwili obecnej OmniROM. OmniROM wywodzi się właśnie z CM'a, a urodził się …

Lżejszy ViewPager dla urządzeń z API >= 11

Jeden z wielu świetnych deweloperów z XDA Developers opublikował odchudzona bibliotekę ViewPager, znaną z Support Library, dla urządzeń z Androidem 3.0+. Biblioteka została odchudzona z całego niepotrzebnego kodu (czyli wszystkich bibliotek supportowych dla starszych urządzeń). Po odchudzaniu biblioteka waży tylko 112 kB, ale oczywiście nie można korzystać z niej z urządzeń o niższym niż 11 API. Link do wątku:  [Library] ViewPager