如何在android应用程序中将收到的短信中的值存储在不同的浮点型变量中

如何在android应用程序中将收到的短信中的值存储在不同的浮点型变量中,android,android-layout,android-intent,android-activity,android-fragments,Android,Android Layout,Android Intent,Android Activity,Android Fragments,我正在做一个简单的应用程序,通过短信获取价值。现在我想在主活动中使用此值进行计算。我收到的短信类似于12.64701.234,其中12.64、70和1.234是不同的值。如何将它们分开。喜欢 a=1264;b=70;c=1.234 我在主活动中的代码是 private BroadcastReceiver intentReceiver = new BroadcastReceiver() { @Override public void onReceive(Contex

我正在做一个简单的应用程序,通过短信获取价值。现在我想在主活动中使用此值进行计算。我收到的短信类似于12.64701.234,其中12.64、70和1.234是不同的值。如何将它们分开。喜欢 a=1264;b=70;c=1.234

我在主活动中的代码是

     private BroadcastReceiver intentReceiver = new BroadcastReceiver() {
     @Override
      public void onReceive(Context context, Intent intent) {
        //---display the SMS received in the TextView---
        TextView SMSes = (TextView) findViewById(R.id.tvdisplay); 
        SMSes.setText(intent.getExtras().getString("sms"));
     }
     };
    /** Called when the activity is first created. */
    @Override
     public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.check);        

    //---intent to filter for SMS messages received---
    intentFilter = new IntentFilter();
    intentFilter.addAction("SMS_RECEIVED_ACTION");
    //---register the receiver---
    registerReceiver(intentReceiver, intentFilter); 
    btnSendSMS = (Button) findViewById(R.id.statuscheck);        
    btnSendSMS.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {                
            sendSMS("***********", "check");
            /*
            Intent i = new 
                Intent(android.content.Intent.ACTION_VIEW);
            i.putExtra("address", "5556; 5558; 5560");
            i.putExtra("sms_body", "Hello my friends!");
            i.setType("vnd.android-dir/mms-sms");
            startActivity(i);
            */                            
        }
      });
       }
       @Override
       protected void onResume() {
      //---register the receiver---
      //registerReceiver(intentReceiver, intentFilter);
      super.onResume();
       }
      @Override
     protected void onPause() {
    //---unregister the receiver---
    //unregisterReceiver(intentReceiver);
      super.onPause();
      } 
      //protected void onDestroy(){
     //unregisterReceiver(intentReceiver);
     //  super.onPause();  
    /  /}
      /*
     //---sends an SMS message to another device---
       private void sendSMS(String phoneNumber, String message)
     {     
      SmsManager sms = SmsManager.getDefault();
      sms.sendTextMessage(phoneNumber, null, message, null, null);
     }
      */   
     //---sends an SMS message to another device---
     private void sendSMS(String phoneNumber, String message)
     {        
     String SENT = "SMS_SENT";
     String DELIVERED = "SMS_DELIVERED";

     PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
        new Intent(SENT), 0);
     PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
        new Intent(DELIVERED), 0);
     //---when the SMS has been sent---
     registerReceiver(new BroadcastReceiver(){
         @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS sent", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Generic failure", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "No service", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(), "Null PDU", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(getBaseContext(), "Radio off", 
                            Toast.LENGTH_SHORT).show();
                    break;
            }
          }
         }, new IntentFilter(SENT));

       //---when the SMS has been delivered---
          registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(), "SMS not delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;                        
            }
        }
      }, new IntentFilter(DELIVERED));        
       SmsManager sms = SmsManager.getDefault();
      sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);        
      }   
     }

发送带有一些预标识和某种格式的sms密码时,阅读时可以替换预标识和格式以区分模式。

如果在sms中用空格分隔,则可以这样做:String stringArray[]=smsBody.split;smsBody应该是字符串。然后在float中解析数组元素。