如何使用Android应用程序发送自动短信?

时间:2015-06-28 19:46:31

标签: android gps google-play

假设我从我的非Android设备(即诺基亚1100或iPhone或任何手机)发送短信(短信可能包含特定代码)到我的Android设备。然后我开发的应用程序访问GPS以找出当前位置。我的应用程序向我的非Android设备发送短信,以通知我的Android设备当前存在的纬度和经度。

  • 我是Android Apps开发的新手,所以我只需要了解这类应用是否可行。如果可能的话,应该是什么基本的工作程序。我再说一遍,我没有问任何代码,我需要知道这个应用程序的基本概念。
  • 如果Play商店中已存在此类应用,请告知我们。

1 个答案:

答案 0 :(得分:0)

您需要了解以下内容:

  1. BroadCastReceiver tutorial
  2. 让应用识别位置tutorial
  3. 首先,您需要BroadCastReceiver来接收传入的消息,并从中检索发件人的号码,然后将带有该位置的短信发送回相同的号码。

    下面的代码不是完整的代码,我刚刚放了代码的一些部分

      @Override 
      public void onReceive(Context context, Intent intent) {
            Bundle bundle = intent.getExtras();
            if (bundle == null) {
                  Log.w(tag, "BroadcastReceiver failed, no intent data to process.");
                  return; 
            } 
            if (intent.getAction().equals(SMS_RECEIVED)) {
                  Log.d(tag, "SMS_RECEIVED");       
    
                Object[] pdus = (Object[]) bundle.get("pdus");
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for (int i = 0; i < pdus.length; i++) {
                    messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                } 
                  String phonenumber= messages[0].getOriginatingAddress();
                   sendSMS(phonenumber,locationembeddedmessage);
              }
               .....................
    

    消息字符串locationembeddedmessage是带有位置消息的字符串,请参阅第2点中的建议教程,我刚刚发布了部分代码。

           mLastLocation = LocationServices.FusedLocationApi.getLastLocation( 
                    mGoogleApiClient); 
            if (mLastLocation != null) { 
                locationembeddedmessage=String.valueOf(mLastLocation.getLatitude())+String.valueOf(mLastLocation.getLongitude());
            } 
    

    最后发送短信的代码,你需要将号码和消息传递给它,

    private void sendSMS(String phoneNumber, String message)
    {
      PendingIntent pi = PendingIntent.getActivity(this, 0,
        new Intent(this, SMS.class), 0);
      SmsManager sms = SmsManager.getDefault();
      sms.sendTextMessage(phoneNumber, null, message, pi, null);
    }
    

    有许多应用程序可以像SMS位置跟踪器(Play商店link

    那样执行此操作