2013-07-25 9 views
8

私は、受信SMSのための放送受信機を使用してサービスを開始することに基づいている盗難防止アプリケーションを開発しています。"ヘルパーアプリケーション"を使用してインストール直後にアプリケーションを起動する方法はありますか?

しかし、電話機がすでに失われている場合、バージョン3.0以降のブロードキャストを受信するには、アプリケーションを少なくとも1回は起動する必要があるため、ブロードキャストレシーバーはGoogle Playからリモートインストールすると機能しません。

「ヘルパーアプリケーション」を使用してインストール直後にアプリケーションを起動する方法や、リモートインストール用にブロードキャスト受信機を作成する方法はありますか?

+0

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

+0

Googleでアプリがhttps://play.google([Androidのロスト]を果たしています。 com/store/apps/details?id = com.androidlost&hl = ja)バージョン3.0 + – test

答えて

0

アプリケーションでマニフェストのandroid.permission.RECEIVE_SMSの使用許可が必要です。

これがあれば、android.provider.Telephony.SMS_RECEIVEDのブロードキャストレシーバを登録できます。

receiverを作成します。

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

あなたがメッセージを取得し、それはあなたがに注意を払うようにしたいものですかどうかを判断したいandroid.provider.Telephony.SMS_RECEIVED_ACTIONための意図を受信したときにあなたの受信機はBroadcastReceiverとonReceive()メソッドでを拡張する必要があります。

コードは次のようになります。

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

バディでアプリを起動せずに着信SMS経由でGoogleプッシュメッセージの登録サービスを呼び出すと、あなたはその問題を理解できませんでした。再度質問をお読みください。 – test

+0

ネイティブアプリケーションでソリューションをロードしようとしていますが、シナリオが指定されている場合、ユーザーはアプリケーションを使用して電話を登録することはできません。代わりに、私はリモートインストールを行い、受信者を登録し(自動的に行われる)、ユーザにウェブサイトまたは他のプラットフォーム上で番号を入力させる。完了したら、数分待って、提供された番号の[launch service](http://developer.android.com/reference/android/content/Context.html#startService(android.content.Intent))にテキストを送信してからあなたの陽気な道を行く。 – David

+0

申し訳ありませんでした。アプリケーションが少なくとも1回は起動されていない場合(バージョン3.0の場合)、放送受信機が動作しないという事実を認識していますか? – test