我的问题很简单,我知道可以执行该功能。我想通过诸如“我的机器人在哪里”之类的短信开始活动,该怎么做?请提供任何信息。我认为 SMSReceiver BroadcastReceiver 方向正确,但我不确定。
问问题
244 次
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_TASK
和Intent.FLAG_FROM_BACKGROUND
标记意图以从后台启动 Activity。
于 2012-05-23T18:47:44.480 回答