Android 6.0 Marshmallow, Huawei P8 i niedziałające aplikacje

Jak pisałem kilka dni temu, odważni użytkownicy smartfonów Huawei P8 (GRA-L09) mogą zainstalować testową wersję systemu operacyjnego Android 6.0 Marshmallow na swoich urządzeniach. Oprogramowanie OTA-GRA-L09C432B313 wprowadza kilka zmian w obsłudze kart SD i niestety, nie obyło się bez problemów. Właśnie związanych z kartami SD i przeniesionymi na nie aplikacjami.

Jeśli w poprzedniej wersji Androida (build B200) ustawiliśmy pamięć domyślną na kartę SD lub przenieśliśmy na nią jakiekolwiek aplikacje, aplikacje te będą niedostępne, niewidoczne w Launcherze i Menadżerze Aplikacji. Zupełnie jakby nigdy nie były zainstalowane. Niestety, zainstalowanie ich ponownie nie rozwiąże problemu. Nowo zaistalowana aplikacja (poprzednio na karcie SD), nie będzie się uruchamiać. Jeszcze przed zobanieniem ekranu startowego aplikacji zostaniemy wyrzuceni do launchera. Co więcej, nawet jeśli sformatujemy kartę SD, nie zmieni to sytuacji. Aplikacje dalej nie będą się uruchamiać. Dłuższą chwilę zajęło mi zrozumienie tego mechanizmu i znalezienie rozwiązania. A rozwiązania są dwa:

  1. Pełny reset urządzenia i przywrócenie ustawień fabrycznych.
  2. Wykonanie następujących kroków:
    • w Ustawienia -> Ustawienia zaawansowane -> Pamięć operacyjna i masowa wybieramy Lokalizacja domyślna -> Pamięć wewnętrzna
    • W Sklepie Play instalujemy brakującą aplikację, a następnie natychmiast ją odinstalowujemy i instalujemy po raz drugi
    • Po tym zabiegu aplikacja będzie uruchamiać się normalnie. Wygląda na to, że w systemie pozostaje informacja o aplikacji z odnośnikiem, iż znajduje się na karcie SD. Z tym, że zmienił się sposób ubsługi karty. Pierwsze zainstalowanie dodaje aplikcję do Launchera, lecz system dalej myśli, że aplikacja jest na karcie SD. Odinstalowanie i zasinstalowanie ponowne rozwiązuje problem.

Dodatkowo, sugeruję nie wybierania karty SD jako lokalizacji domyślnej, a pozostawienie pamięci wewnętrznej i tylko zapis zdjęć na karcie SD. Jeśli wybierzemy kartę jako lokalizację domyślną, część aplikacji może mieć problem z dostępem do karty. Na razie znalazłem jeden taki przypadek: Muzyka Play nie potrafi używać karty SD jeśli jest ona lokalizacją domyślną pamięci.

Android 6.0 Marshmallow dla Huawei P8 GRA-L09

Od połowy grudnia poprzedniego roku dostępny jest testowy build Androida 6.0 Marshmallow dla Huawei P8 (GRA-L09). Build oznaczony jest numerem OTA-GRA-L09C432B313 beta i dostępny do pobrania tutaj. Warunkiem koniecznym do instalacji jest posiadannie już wersji B200. Paczka waży około 1.2GB i oprócz Androida 6.0 Marshmallow zawiera także aktualizację EMUI do wersji 4.0.

Kilka godzin temu dokonałem aktualizacji mojego Huawei P8 do wersji B313 i wygląda na to, że wszystko działa. Co prawda kilka godzin to za mało na jakiekolwiek poważne testy, ale jak na razie wszystko jest OK. Z rzeczy które mi się nie podobają, to nowy motyw ikon aplikacji, część z nich wygląda absurdalnie na wymuszonym białym tle. Mam nadzieję, że zostanie to poprawione.

Aby zainstalować Androida 6.0 Marshmallow na smartfonie Huawei P8 GRA-L09 należy:

  1. Pobrać paczkę instalacyjną z linku powyżej
  2. Zmienić nazwę pliku na update.zip
  3. Na karcie SD utworzyć katalog dload i umieścić w nim plik update.zip
  4. Uruchomić Ustawienia -> Aktualizator -> Menu -> Aktualizacja lokalna
  5. Wybrać pakiet update.zip i potwierdzić

Instalacja zajmuje około pół godziny

Android 5 Lollipop dla Motorola Moto G (1-st gen 2013)

Trochę to trwało, ale nowy Android ląduje wreszcie na popularnych smartfonach Motorola Moto G pierwszej generacji.

Motorola Moto G Android 5.0.2 LollipopPaczka instalacyjna zajmuje około 350MB, a sam proces aktualizacji około 15 minut. W moim przypadku updało się bez najmniejszych problemów.

 

Android 5.0 Lolipop (Android L) dla LG Nexus 4

Nowe Nexusy, czy 6″ phablet Nexus 6 od Motoroli i 9″ tablet Nexus 9 od HTC, zostały właśnie oficjalnie ogłoszone wraz z nowym Androidem 5.0 Lolipop (dawny Android L). Nowe Nexusy jako to nowe Nexus, mnie jako szczęśliwego posiadacza starszego Nexusa 4, raczej mało interesowały. Z mojego punktu widzenia znacznie bardzie interesujące było to, czy mój Nexus 4 dostanie aktualizację do nowego Androida 5.0 Lolipop. A sprawa nie była jasna do ostatniej chwili. Jak by na to nie patrzeć, to urządzenie sprzed 2 lat. Na szczęście, cytując oficjalny blog Google, sprawa rozstała rozwiązana po myśli użytkowników:

Android 5.0 Lollipop, which comes on Nexus 6, Nexus 9 and Nexus Player, will also be available on Nexus 4, 5, 7, 10 and Google Play edition devices in the coming weeks.

W wolnym tłumaczeniu: aktualizacja dla urządzeń Nexus 4, 5, 7 i 10 oraz urządzeń z serii Google Play zostanie udostępniona w ciągu najbliższych tygodni. Jak należy to rozumieć? Nie wcześniej niż w listopadzie i być może do końca roku.

Android SDK i Google Analytics

Dziś szybki poradnik jak zaimplementować podstawowe funkcje Google Analytics we własnej aplikacji na Androida. Niby w sieci powinno być dużo na ten temat, ale:

  • Oficjalny tutorial na stronie developer.android.com jest trochę zakręcony,
  • Poradnik i przykłady na stronie Google Analytics jest z zupełnie innej bajki i do niczego się nie nadaje,
  • Większość poradników odnosi się do Analytcs v3 lub jeszcze starszych

Spędziłem sporo czasu próbując dojść ze sprawą do porządku, a rozwiązanie okazało się jak zwykle banalne. Aby śledzić wyświetlenia ekranów naszej apki nie trzeba zbyt wiele zachodu. No to jedziemy:

  1. Nasza aplikacja musi obsługiwać Google Play Services. Jeśli korzystacie z Android Studio, robi to się przez dodanie compile 'com.google.android.gms:play-services:5.0.89' w sekcji dependencies pliku app/build.gradle oraz <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
    w sekcji application pliku AndroidManifest.xml (numer wersji aktualny na wrzesień 2014). Jeśli nie korzystacie jeszcze z Android Studio, to zacznijcie,
  2. Uprawniamy aplikację do dostępu do internetu przez dodanie w pliku AndroidManifest.xml następujących uprawnień
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. Na stronie Analytics tworzymy profil aplikacji i zapisujemy jej identyfikator w formacie UA-xxxxxxx-xx. Będzie nam potrzebny w następnym kroku.
  4. Jeśli jeszcze nie nadpisaliśmy klasy Application, robimy to teraz:

    We właściwości TRACKING_ID podajemy oczywiście identyfikator naszej aplikacji oraz informujemy Androida, że nadpisaliśmy klasę Application przez dodanie właściwości android:name sekcji application pliku AndroidManifest.xml.

    Dlaczego tracker definiujemy w klasie aplikacji? Aby mieć jego tylko jedną instancję. OK, dało by się to zrobić inaczej, ale tak też można.
  5. W Activities które chcemy śledzić dodajemy następujący kod

    Oczywiście, „PogodaApplication” zastępujemy nazwą klasy naszej aplikacji, a „ForecastActivity” nazwą jaka chcemy aby pojawiła się w Analyticsach

I to tyle. Jak widać, nie ma w tym żadnej filozofii. Tylko uwaga, dane nie pojawią się na stronie Google Analytics od razu. Google Play Services wysyła dane w paczkach co pewien czas, a nie w natychmiast jak strony internetowe. Należy więc trochę poczekać.

Altimeter / Wysokościomierz

Wczoraj Apple ogłosiło, iż iPhone 6 będzie wyposażony w barometr. Z jednej strony nowość, z drugiej nie taka duża, bo telefony z Androidem były wyposażane w barometry dwa lata temu. Czujnik może nie z gatunku tych super przydatnych, ale czasami użytecznych. Po warunkiem, że mamy aplikację pozwalającą go wykorzystać.

Taką aplikacją jest Altimeter mojego autorstwa służąca, jak sama nazwa wskazuje, do pomiaru aktualnej wysokości na podstawie ciśnienia atmosferycznego. Dlaczego na podstawie ciśnienia, a nie GPS? Bo GPS nie zawsze jest dostępny (w budynkach), pomiar wysokości jest raczej mało dokładny. A ciśnienie mamy zawsze, pomiar jest dokładny i “out of the box” mamy zarówno wysokość relatywną, jak i absolutną.

Android Altimeter Wysokościomierz

Jak widać, interface jest prosty. Po lewej u góry, aktualna wysokość relatywna. Aby skalibrować wysokość relatywną, należy dotknąć koła. Po prawej w góry aktualne ciśnienie. Poniżej aktualne ciśnienie na poziomie morza. Na podstawie ciśnienia na poziomie morza obliczana jest wartość absolutna wyświetlana w kole w lewym dolnym rogu.

To tyle. Barometr w moim Google Nexus 4 jest na tyle dokładny, że aplikacja pozwala na pomiar różnicy wysokości tak małych jak jeden metr. Oczywiście, dokładność nie jest wtedy najlepsza.

Czytaj dalej

Android KitKat 4.4.3

image

Wczoraj wieczorem Google uraczył mojego Nexusa 4 aktualizacją do Androida 4.4.3.
Zdecydowanie nie jest to znacząca aktualizacja i jak do tej pory znalazłem tylko jedną różnicę wizualną : poprawiony dialer. Jeśli więc twój telefon jej nie dostanie, to nie ma co załamywać rąk.