2012-05-07 7 views
0

に入ってくるSMS上での活動を開始するために、私はこれを行っているの着信SMS.For以上の活動を開始したい...どのようにアンドロイド

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

      } 

     } 

    } 
} 

と私のSwitchBluetoothActivityクラスは、このようなものです。..

public class SwitchBluetoothActivity extends Activity { 
    private TextView tv; 
    private ToggleButton tb; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     tv = (TextView) findViewById(R.id.bluetoothText); 
     tb = (ToggleButton) findViewById(R.id.toggleButton); 

     final BluetoothAdapter bta = BluetoothAdapter.getDefaultAdapter(); 

     if (bta == null) { 
      tv.setText("Device does not support Bluetooth"); 
     } 
     else if(bta.isEnabled()){ 
      tv.setText("Bluetooth is enabled"); 
      tb.setChecked(true); 
     } 
     else{ 
      tv.setText("Bluetooth is disabled"); 
      tb.setChecked(false); 
     } 

     tb.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if(bta.isEnabled()){ 
        bta.disable(); 
       tv.setText("Bluetooth is disabled"); 
       } 
       else{ 
        bta.enable(); 
       tv.setText("Bluetooth is enabled"); 
       } 
      } 
     }); 
    } 
} 

また、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> 
+0

あなたはエラーが発生しましたか? –

+0

は、まったく呼び出されている受信機ですか?あなたのマニフェストを投稿してください。私たちはそれが受信するために登録されているものを見ることができます – MikeIsrael

+0

@MikeIsrael私は自分のマニフェストを追加しました。 –

答えて

0

デフォルト任意の優先順位を持っていない、あなたの放送受信ので、あなたのacitvityもuのマニフェスト

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

であなたの受信機のための優先順位を追加起動launches.forデフォルトのアクティビティマニフェストにこのパーミッションを追加する必要があります

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

ユーザーがSMSメッセージを受信するために支払う必要がある場合、そのアプリがメッセンジャーではなくインテントを処理する場合でも請求されますか? –

+0

どういう意味ですか? –

関連する問題