2012-04-07 10 views
1

私はアンドロイドプラットフォームには新しく、エンドデバイスとコーディネーターがなく、SMS経由で通信するアプリケーションを作りたいと考えています。Android SMSサービスはバックグラウンドで実行され、即時更新されます

私はj2meでビルドしましたが、今はアンドロイドにバックグラウンドでSMSを受信し、データベースを中断なく更新するサービスを作成したいと考えています。私はここで

>
public class SMSReceiver extends BroadcastReceiver { 
    private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
    private SMSSync sync; 
    private Context context; 
    public SMSReceiver(Context ctx){ 
     sync = new SMSSync(ctx); 
     this.context = ctx; 
    } 

    @Override 
    public void onReceive(Context context,final Intent intents){ 
     if (intents.getAction().equals(SMS_RECEIVED)) { 
      new Thread(){ 
       Context context; 
       Thread Set(Context ctx){ 
        this.context=ctx; 
        return this; 
      } 
     public void run(){ 
      try{ 
      SmsManager sms = SmsManager.getDefault(); 
      Bundle bundle = intents.getExtras(); 
      /*String uriContent =intent.getDataString(); 
      String[] str = uriContent.split(":"); 
      String strPort = str[str.length-1]; 
      short Port = Short.valueOf(strPort, 16);*/ 
      //if(Port==5000){*/ 
      if (bundle != null) { 
      Object[] pdus = (Object[]) bundle.get("pdus"); 
      SmsMessage[] messages = new SmsMessage[pdus.length]; 
      for (int i = 0; i < pdus.length; i++) 
      messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      String msg=null; 
      String address = null; 
       for (SmsMessage message : messages) { 
        msg = message.getMessageBody(); 
        address = message.getOriginatingAddress(); 
       } 
       ////////////sending to SMSSync class////////////// 
       MainThread th = new MainThread(sync,msg); 
       try{ 
        th.thread.join(); 
       }catch(Exception e){ 
        Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show(); 
       } 
       if(msg.substring(3, 4).equals("2")) 
        ConstantClass.isAuditrequestSend = true; 
//    sync.smsProcess(msg); 
       //Toast.makeText(context, "Message Received Successfully", Toast.LENGTH_SHORT).show();    
      } 
//   } 
      ////////////////after receiving the sms opening the Main Screen.///////////////////// 
      Intent intent = new Intent(context,ZigbeeActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(intent); 


     }catch(Exception e){ 
      Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show(); 
     } 
     } 
    }.Set(context).start(); 
    } 
    } 
//} 
} 

答えて

0

を、私はそれをバインドすることができますどのように単純なクラスではなく、サービスで正常に動作しますいくつかのコードを書かれている自分がSMSを送受信する上で開始私が取得するために使用する偉大なチュートリアルです:

http://mobiforge.com/developing/story/sms-messaging-android

このチュートリアルでは、テキストを受信したときに通知(トースト)を送信して受信する方法を示します。

How to receive sms from our android app?

android: register application to receive sms

このことができますなら、私を知ってみましょう!

関連する問題