2013-07-25 7 views
8

Pracuję nad aplikacją antykradzieżową, która polega na uruchomieniu usługi przy użyciu odbiornika dla przychodzącego SMS.Czy istnieje sposób na uruchomienie aplikacji zaraz po instalacji przy użyciu "aplikacji pomocnika"?

Jeśli jednak telefon jest już utracony, odbiornik nie będzie działać, gdy aplikacja zostanie zdalnie zainstalowana z poziomu Google Play, ponieważ aplikacja musi zostać uruchomiona co najmniej raz, aby odbierać emisję w wersji 3.0+.

Czy istnieje sposób na uruchomienie aplikacji zaraz po instalacji za pomocą "aplikacji pomocniczej" lub sprawić, że odbiornik telewizyjny będzie działał zdalnie?

+0

http://stackoverflow.com/questions/11872320/auto-launching-android-app-after-install – KOTIOS

+0

jest aplikacja w Google Play [Android] (https://play.google utracony. com/store/apps/details? id = com.androidlost & hl = en), które wywołują usługę rejestracji wiadomości google push za pośrednictwem przychodzącego SMS-a bez uruchamiania aplikacji nawet raz dla wersji 3.0+ – test

Odpowiedz

0

Twoja aplikacja będzie musiała mieć pozwolenie na używanie dla android.permission.RECEIVE_SMS w twoim manifeście.

Gdy już to zrobisz, możesz zarejestrować odbiornik dla android.provider.Telephony.SMS_RECEIVED.

Następnie należy utworzyć swoją receiver.

<receiver android:name=".SMSBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 

Odbiornik powinien przedłużyć BroadcastReceiver oraz w metodzie onReceive() po odebraniu intencję dla android.provider.Telephony.SMS_RECEIVED_ACTION chcesz pobierać wiadomości i określić, czy jest taki, który chcesz zwrócić uwagę.

Twój kod może wyglądać mniej więcej tak.

public class SMSBroadcastReceiver extends BroadcastReceiver { 
    private static final String TAG = "SMSBroadcastReceiver"; 
    private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED" 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(SMS_RECEIVED)) { 
      Bundle bundle = intent.getExtras(); 
      if (bundle != null) { 
       Object[] pdus = (Object[]) bundle.get("pdus"); 
       final SmsMessage[] messages = new SmsMessage[pdus.length]; 
       for (int i = 0; i < pdus.length; i++) { 
        messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
       } 
       if (messages.length > -1) { 
        //You have messages, do something with them here to determine if you want to look at them and other actions. 
       } 
      } 
     } 
    } 
} 
+0

Znajomy, którego nie zrozumiałeś problemu. Przeczytaj ponownie pytanie. – test

+0

Próbujesz załadować rozwiązanie w macierzystej aplikacji, ale biorąc pod uwagę scenariusz pod warunkiem, że użytkownik prawdopodobnie nie będzie miał dostępu do swojej aplikacji, aby zarejestrować telefon. Zamiast tego wykonam instalację zdalną, zarejestruję odbiornik (zrobię to automatycznie), a następnie wprowadzę jego numer na stronie internetowej lub na innej platformie. Po zakończeniu poczekaj kilka minut, wyślij tekst na podany numer, [uruchom usługę] (http://developer.android.com/reference/android/content/Context.html#startService (android.content.Intent)), a następnie Idź na swoją wesołą drogę. – David

+0

Przepraszam cię nie dostałem. Czy wiesz, że odbiornik nie zadziała, jeśli aplikacja nie zostanie uruchomiona co najmniej raz (dla wersji 3.0 na oddziałach). – test

Powiązane problemy