0

私は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();
    }
    }
//}
}
4

0 に答える 0