0

我的问题很简单,我知道可以执行该功能。我想通过诸如“我的机器人在哪里”之类的短信开始活动,该怎么做?请提供任何信息。我认为 SMSReceiver BroadcastReceiver 方向正确,但我不确定。

4

2 回答 2

1

看看这家伙截取短信的示例代码http://imran-android-sms.blogspot.com/2011/03/receive-sms-on-android.html#more

从那里你只想激发你的新活动的意图。

于 2012-05-23T18:38:25.083 回答
1

您需要在 AndroidManifest.xml 中注册一个广播接收器以接收 SMS_RECIVERD 广播:

<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);
   }
 }
}

注意:要从后台启动 Activity,您需要设置Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_FROM_BACKGROUND标记意图以从后台启动 Activity。

于 2012-05-23T18:47:44.480 回答