2012-07-30 15 views

Odpowiedz

9

To jak to zrobiłem:

zmieniłem główną działalność nie mieć intent-filtry:

<activity 
      android:name=".ParentTrap" 
      android:label="@string/title_activity_parent_trap" 
      android:theme="@android:style/Theme.Holo" > 
     </activity> 

I wtedy popełnił odbiornika audycji z zamiarem działania filtra: android.provider.Telephony.SECRET_CODE

Dodałem do niego dane. Cała sprawa jest poniżej:

<receiver android:name=".ParentTrap$Launch" > 
      <intent-filter> 
       <action android:name="android.provider.Telephony.SECRET_CODE" /> 

       <data 
        android:host="(secret code)" 
        android:scheme="android_secret_code" /> 
      </intent-filter> 
     </receiver> 

Gdy to zrobisz, upewnij się klasę (Zrobiłem klasę uruchomienie w moim głównej klasy, rozszerzając Odbiornik radiowy), a następnie w onReceive klasy, ogień o zamiarze rozpoczęcia działalności.

Następnie wpisanie *#*#(secret code)#*#* do dialera spowoduje uruchomienie aplikacji.

+0

To nie działa dla mnie na Samsung Galaxy Note GT-N7000 z Androidem 4.1.2. Czy musimy zrobić coś jeszcze, aby to zadziałało? – Manish

+0

@Manish była aplikacją otwartą przed próbą? –

+0

Tak Zrobiłem pustą aktywność. Proszę zobaczyć moje pytanie związane z tym: http://stackoverflow.com/questions/18901339/android-provider-telephony-secret-code-reserved-for-system-apps i proszę o pomoc, jeśli możesz. – Manish

6

Tworzenie odbiornik audycji z tej akcji:

W dodatkami można znaleźć the dialed number.

Edytuj: Oto tutorial dla odbiornika transmisji.

+0

Nie tak ... Ale może być konieczne. –

+0

Nie sądzę, że jesteś w stanie przechwycić prostą czynność wybierania bez wywoływania ... – eftokay83

+0

Ach, mówiłem o sekretnych kodach * # * #, ale wymyśliłem, jak z nich korzystać :) –

0

Zainstalowany odbiornik może powinieneś zarejestrować się w odpowiednim działaniu. Na przykład Intent.ACTION_CALL wygląda obiecująco. Problem polega na tym, jak filtrować intencje, aby otrzymać tylko tę konkretną liczbę. Podejrzewam, że będzie to wyglądać tak (ja Gesing na podstawie tego co znalazłem w dokumentacji):

<action name=".YourAction"> 
    <intent-filter . . . > 
     <action android:name="android.intent.action.CALL" /> 
     <!-- data is crutial here, you have to figuire it out exacly yourself --> 
     <data android:scheme="tel" android:path="yourSpecyficSecretCode" /> 
    </intent-filter> 
</action> 

Look here i here. Użyj LogCat, aby zobaczyć, jakie dokładnie intencjonalne kontatyny możesz następnie poprawnie przefiltrować.

Powiązane problemy