如何在android中通过传入短信启动活动

如何在android中通过传入短信启动活动,android,android-activity,Android,Android Activity,我想在收到的短信上开始一项活动。为此,我做了以下工作 public class ReceiveSMS extends BroadcastReceiver { Boolean SendSMS; String Mobileno; String VarMessageBody; @Override public void onReceive(Context context, Intent intent) { Bundle bundle

我想在收到的短信上开始一项活动。为此,我做了以下工作

    public class ReceiveSMS extends BroadcastReceiver {

    Boolean SendSMS;
    String Mobileno;
    String VarMessageBody;

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
        String str = "";
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            for (int i = 0; i < msgs.length; i++) {
                msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                str += "SMS from " + msgs[i].getOriginatingAddress();
                Mobileno = msgs[i].getOriginatingAddress();
                str += " :";
                str += msgs[i].getMessageBody().toString();
                VarMessageBody = msgs[i].getMessageBody().toString();
                str += "\n";
                Mobileno = msgs[i].getOriginatingAddress();

            }
            if (VarMessageBody.startsWith("START")) {
                Intent intentHome = new Intent(context,SwitchBluetoothActivity.class);
                intentHome.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intentHome);

            }

        }

    }
}
我还在AndroidManifest.xml中添加了意图过滤器,但我的问题是。我无法启动此活动。请给我建议我在哪里犯了错误

这是我的清单文件

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxxxxx.smsServices"
    android:versionCode="1"
    android:versionName="1.0" >
    <activity android:name=".SwitchBluetoothActivity">

    </activity>
    <receiver android:name=".ReceiveSMS">
        <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </receiver>

    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.BROADCAST_SMS"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
    </application>

</manifest>

默认广播接收器没有任何优先级,因此默认活动将启动。要启动AcitCity,请在清单中为接收器添加优先级

      <receiver android:name=".SmsReciever">
        <intent-filter android:priority="99999">
            <action android:name="android.provider.telephony.SMS_RECIEVED"></action>
        </intent-filter>
    </receiver>
      <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
您还必须在清单中添加此权限

      <receiver android:name=".SmsReciever">
        <intent-filter android:priority="99999">
            <action android:name="android.provider.telephony.SMS_RECIEVED"></action>
        </intent-filter>
    </receiver>
      <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

有人打电话给接受者吗?同时发布您的清单,以便我们可以查看它注册到的对象recieve@MikeIsrael我已经添加了我的清单。如果用户必须为接收短信付费,即使应用程序处理的是意图而不是信使,他们也会被收费吗?我不明白你的意思?