0

私の質問は非常に単純で、関数を実行できることはわかっています。"WHERE IS MY DROID" などのテキスト メッセージでアクティビティを開始したいのですが、どうすればよいですか? 情報を提供してください。SMSReceiver BroadcastReceiver は正しい方向にあると思いますが、よくわかりません。

4

2 に答える 2

1

SMS_RECIVERD ブロードキャストを受信するには、ブロードキャスト レシーバーを AndroidManifest.xml に登録する必要があります。

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

AndroidManifest にアクセス許可を追加します。

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

ブロードキャスト レシーバー コードで、次のようにアプリケーションを開始します。

public class SMSReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){      
   //context.startService(new Intent(context, YourService.class));

   //Start activity as:
    Intent intent24 = new Intent(Intent.ACTION_MAIN).addCategory(
    Intent.CATEGORY_LAUNCHER).setClassName("YOUR_PACKAGE_NAME",
    "com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    .addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("YOUR_PACKAGE_NAME",
    "com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME"));
    context.startActivity(intent24);
   }
 }
}

注:バックグラウンドからアクティビティを開始するには、バックグラウンドからアクティビティを開始するためのインテントを設定Intent.FLAG_ACTIVITY_NEW_TASKしてフラグを立てる必要があります。Intent.FLAG_FROM_BACKGROUND

于 2012-05-23T18:47:44.480 に答える
1

SMS を傍受するためのこの男のサンプル コードをチェックしてくださいhttp://imran-android-sms.blogspot.com/2011/03/receive-sms-on-android.html#more

そこから、新しいアクティビティが何であれ、インテントを発射したいだけです。

于 2012-05-23T18:38:25.083 に答える