2011-10-19 12 views
0

私は2つのアクションをonreceiveメソッドで発生し、私はブロードキャストレシーバーを拡張する必要があり、私はsmsを送信することができませんでしたので、私はメッセージを受け取り、それをスピーチに変換して、2つのアクションのそれぞれがトグルトートンになっています。私は既にコンバートアクションを実行しました。そして、私は登録することができましたそして、受信機の登録を解除が、それは私にonreceiveメソッドでSMSを送信する方法とクラス拡張ブロードキャスト

答えて

0

次のコードの送信SMS自動的 ブロードキャストレシーバークラス

をお答えくださいあなたsms.if自動返信を送っcouldntの

}

レシーバー活動

public class receiver extends Activity { 
/** Called when the activity is first created. */ 

private int status=-1; 
SMSReceiver receiver=null; 
IntentFilter filter=null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    startLogic(); 
} 


//==================================================== 
private void changeReceiverStatus(int status){ 

    try{ 

     if(receiver==null) 
      receiver=new SMSReceiver(); 

     if(filter==null){ 

      filter = new IntentFilter(); 
      filter.addAction("android.provider.Telephony.SMS_RECEIVED"); 
     } 

     if(status<0) 
      this.unregisterReceiver(receiver); 
     else 
      this.registerReceiver(receiver, filter); 

    }catch(Exception e){e.printStackTrace();} 
} 

//==================================================== 
private void startLogic(){ 

    try{ 

     final Handler handler=new Handler(){ 
      public void handleMessage(Message msg){ 

       try{ 

        int status=msg.getData().getInt("status"); 

        if(status<0) 
         Toast.makeText(receiver.this, "Unregistering receiver for 20 sec", Toast.LENGTH_SHORT).show(); 
        else 
         Toast.makeText(receiver.this, "Registering receiver for 20sec", Toast.LENGTH_SHORT).show(); 

       }catch(Exception e){e.printStackTrace();} 
      }}; 

     new Thread(){ 
      public void run(){ 

       try{ 

        while(true){ 

         Bundle b=new Bundle(); 
         b.putInt("status", status); 
         Message msg=new Message(); 
         msg.setData(b); 

         handler.sendMessage(msg); 

         changeReceiverStatus(status); 
         status=status*-1; 

         Thread.sleep(20000); 
        } 

       }catch(Exception e){e.printStackTrace();} 

      }}.start(); 

    }catch(Exception e){e.printStackTrace();} 
} 

}

それに役立つことを願っています!

関連する問題