2012-11-16 12 views
11

Od wersji SDK 4.2 wydaje się, że nie można już modyfikować trybu samolotowego na urządzeniach, ponieważ google przeniosło to ustawienie do Settings.Global, które jest tylko do odczytu.Modyfikuj AIRPLANE_MODE_ON na Androidzie 4.2 (i nowszym)

Czy ktoś był w stanie ominąć to bez korzenia?

Podstawową funkcją moich aplikacji jest włączenie trybu samolotowego po wyłączeniu ekranu, co przestało działać od wersji 4.2.

Chcę tylko dwukrotnie sprawdzić, czy moja ocena jest prawidłowa i czy moja aplikacja nie działa od wersji Android 4.2 lub nowszej.

Referencje: http://developer.android.com/reference/android/provider/Settings.Global.html#AIRPLANE_MODE_ON

+0

Czy są jakieś aktualizacje na ten temat? Czy byłeś w stanie sprawić, żeby działało w wersji 4.2? –

Odpowiedz

3

Wiem, że wyraźnie prosisz o rozwiązanie bez rootowania, ale jeśli masz zrootowane urządzenie, istnieje co najmniej (rodzaj) oficjalne rozwiązanie umożliwiające przeniesienie aplikacji do folderu /system/app. To jest możliwe, aby napisać do Settings.Global:

Settings.Global.putInt(context.getContentResolver(), Global.AIRPLANE_MODE_ON, mode ? 1 : 0); 

Mają wygląd jak toggle airplane mode for 4.2 i jak przenieść aplikację do /system/apphere. Używam tego dla mojego widżetu przełączającego Mini Status (source code link).

+0

możesz udostępnić bardziej szczegółowe instrukcje, aby śledzić ustawienia trybu samolotowego na zrootowanych urządzeniach. gdzie mam rozpocząć mój pierwszy krok. –

+0

Wystarczy postępować zgodnie z powyższymi linkami do działającego kodu, więcej szczegółów nie jest możliwe ... –

6

Po prostu chcę, aby dokładnie sprawdzić, że moja ocena jest prawidłowa i że moja aplikacja jest martwy wyjścia z Android 4.2 i wyżej.

Tak. Lub, mówiąc inaczej, jeśli istnieje sposób na zmianę tego ustawienia, oznacza to lukę w zabezpieczeniach, która ostatecznie zostanie zamknięta, podobnie jak włączenie/wyłączenie ograniczenia GPS istniejącego od 3 lat.

+1

Szukałem innego oficjalnego sposobu na zrobienie tego zamiast starego, nie tylnych drzwi. Właśnie dlatego napisałem jednoznacznie "bez żadnego ukorzeniania". Ponieważ nie rozumiem, dlaczego Google ograniczyłoby dostęp do tak trywialnej funkcji, jak tryb samolotowy. Mam na myśli, jaka szkoda może to zrobić? Mój nexus 7 właśnie przeszedł z 6-8 dni gotowości na około 2. Dzięki milionowi Google. I tak, jestem stronniczy, odkąd napisałem aplikację, aby to osiągnąć (airlockapp.com), ale dlaczego ograniczyć dostęp do całkowicie bezpiecznej funkcji? – Tommie

+0

@Tommie: "Szukałem innego oficjalnego sposobu, aby to zrobić, zamiast starego, nie tylnych drzwi" - z definicji nie ma, przynajmniej w tej chwili. W przeciwnym razie nie przenieśliby go do 'Settings.Global'. "Mam na myśli, jaka szkoda może to zrobić?" - masz na myśli, oprócz odłączenia osoby od świata zewnętrznego, być może bez jej zgody lub wiedzy? Heck, ja * używam * widżetu aplikacji trybu samolotu i zawsze rozważałem decyzję, aby opuścić to ustawienie w "Ustawieniach" jako ruch głupi. Prawdopodobnie pozwoliłbym jednak na modyfikację poprzez dedykowane pozwolenie. – CommonsWare

+0

Zgadzam się, że odpowiednie ustawienie byłoby wystarczające. Usunięcie możliwości kontrolowania trybu samolotowego na urządzeniu z Androidem wydaje się trudne. – Tommie