2012-04-27 18 views
5

Dla celów testowania funkcji, której nie chcę udostępnić publicznie pod numerem , chciałbym wprowadzić "tajne" menu lub pozycję menu.W jaki sposób zaimplementować tajne menu?

Przez "tajne" nie mam na myśli naprawdę tajnego, ale bardziej ukrytego lub niewidocznego menu, dostępnego tylko dla programisty (mnie), poprzez wprowadzenie kodu lub innego mechanizmu.

To nie koniec świata, jeśli użytkownik końcowy znajdzie o tym i spróbuje go użyć ("Zrobili to jako dowód, ale znalazłem obejście"). Po prostu nie chcę zawieść niczego nie podejrzewającego niewinnego użytkownika końcowego, dostarczając funkcję, która nie jest jeszcze w pełni przetestowana.

Wszelkie sugestie, jak to zrobić? (Tylko Android 2.2 i nowsze)

+1

Dlaczego trzeba go zwolnić i ukryć? Również aktualizacja bez niczego dla użytkownika jest stratą czasu dla użytkownika. – Matsemann

+0

@Matsemann Ponieważ chcę przetestować ten sam dokładny plik binarny, który ma użytkownik końcowy, a nie odtwarzać go ponownie. Nigdzie nie sugerowałem "aktualizacji bez niczego dla użytkownika" ... Sugestie? –

+0

Jestem po prostu ciekawy :) Ponadto, gdy mamy do czynienia z problemem, dobrze jest wiedzieć, CO i DLACZEGO. Być może nie możemy odpowiedzieć na twoje dokładne pytanie, ale możemy podać inne rozwiązanie itp. Dlaczego miałoby to znaczenie nie przy użyciu tej samej wersji? – Matsemann

Odpowiedz

4

Jedną z metod, którą użyłem kilka razy, jest wyświetlenie formularza wprowadzenia kodu PIN, gdy użytkownik potroi jedną z części ekranu. Wprowadź kod PIN, aby przejść do ekranu programisty.

+0

Świetny pomysł. Czy oznacza to dynamicznie tworzone menu, a nie oparte na zasobach? –

+0

Nie. Jedyne, co musi być wyjątkowe, to jak je uruchomić. Chociaż oczywiście nie można go zaimplementować jako menu, które już jest specjalne i ma powiązane środki wyzwalające, takie jak menu opcji, chyba że uczyni się je dynamiczną częścią. –

+0

Ta wskazówka, wraz z http://stackoverflow.com/a/3680926 dostała mnie tam. Inne odpowiedzi też są świetne, ale potrzebowałem porady, jak uruchomić tryb wprowadzania hasła. Dzięki! –

3

Czy chcesz mieć menu tylko na telefonach w wersji rozwojowej, czy chcesz dostać się do menu na dowolnym telefonie?

Oto 3 opcje, które mogę wymyślić.

1) Można mieć plik z dowolnym dowolnym kodem klawisza ciągu, a istnienie pliku i klucza włącza tę funkcję.

2) Można rejestrować naciśnięcia ekranu, na przyciskach, a połączenie tego uruchamia ekran kodu dostępu.

3) Jeśli masz menu opcji, z większą ilością sekcji możesz tam zagrzebać ekran przejścia. Lub jeśli masz o ekranie, długie naciśnięcie logo może uruchomić ekran pass.

+0

Odpowiadanie na kwerendę: dowolny telefon. Wkrótce sprawdzę opcje wymienione na liście. –

6
  • porównaj np identyfikator Android urządzenia i jeśli pasuje do twojego telefonu dev, odblokuj menu, aby sprawdzić, czy jest zainstalowana inna aplikacja (pusty manekin) i odblokuj menu w oparciu o te informacje.

  • możesz dodać Aktywność do swojego kodu/manifestu, która nie jest wywoływana przez żaden kod. Nadal można go uruchomić poprzez adb shell am start -n com.your.package/.SecretThing (że aktywność może po prostu ustawić wspólną preferencję, który otwiera menu)

  • można wyzwolić menu jeśli słuchać jakiegoś tajnego audycji wyślesz z adb shell am broadcast -a your.secret.broacast.ACTION_SECRET

  • jeśli masz urządzenie, które posiada klawiaturę wdrożenia kluczową słuchacza, że ​​jedynie uruchamia menu jeśli wprowadzisz jakieś tajne słowo (wciąż naprzód kluczowych zdarzeń w systemie)

  • jeśli aplikacja ma dostęp do lokalizacji następnie ukryć menu jeśli są np nie w domu.

  • dodać trochę zawsze widoczny element menu, który wyzwala chroniony hasłem ekran (nie jest dobrym pomysłem, ale działa)

0

muszę wydzielać menu też, cóż mam zamiar wdrożyć go na login screen , wprowadź device time w polu Edytuj tekst i press cancel.

Powiązane problemy