2011-12-31 48 views
-3

可能重複緯度,經度和地址:
How to retrieve the GPS location via SMS如何讓機器人

我提出是要像這樣一個Android應用程序: 當用戶鍵入一個包含例如「findmyphone」或類似的東西(它不會響應其他正常文本消息)的短信給運行該應用程序的電話,應用程序將自動響應該號碼的緯度,經度和地址正在運行應用程序的電話。

我還需要一個按鈕來測試它。一旦用戶按下「測試」按鈕,緯度,經度和地址將出現在2個文本框中,緯度和經度爲1,地址在另一個文本框中。非常感謝!這是我到目前爲止有:

import java.io.IOException; 
import java.util.List; 
import java.util.Locale; 

import android.app.Activity; 
import android.content.Context; 
import android.location.Address; 
import android.location.Geocoder; 
import android.location.Location; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 

public class FindAndroidActivity extends Activity implements OnClickListener { 
/** Called when the activity is first created. */ 
Button Nextbutton1, Nextbutton2, TestLocationService; 
TextView Cordinates, Adress, FindAndroid; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Nextbutton1 = (Button)findViewById(R.id.Nextbutton1); 
    Nextbutton1.setOnClickListener(this); 
} 
public void onClick(View src) { 
    switch (src.getId()) { 
    case R.id.Nextbutton1: 
     setContentView(R.layout.setup); 
     Nextbutton2 = (Button)findViewById(R.id.Nextbutton2); 
     Nextbutton2.setOnClickListener(this); 
     TestLocationService = (Button)findViewById(R.id.TestLocationService); 
     TestLocationService.setOnClickListener(this); 
     break; 
    case R.id.Nextbutton2: 
     setContentView(R.layout.main); 
     break; 
    case R.id.TestLocationService: 
     break; 
    } 
} 
    public Address getAddressForLocation(Context context, Location location) throws IOException { 

     if (location == null) { 
      return null; 
     } 
     double latitude = location.getLatitude(); 
     double longitude = location.getLongitude(); 
     int maxResults = 1; 

     Geocoder gc = new Geocoder(context, Locale.getDefault()); 
     List<Address> addresses = gc.getFromLocation(latitude, longitude, maxResults); 

     if (addresses.size() == 1) { 
      return addresses.get(0); 
     } else { 
      return null; 
     } 
} 

}

+4

「我怎樣才能做到這一點儘可能簡單?」你應該付錢給你這樣做...這是最簡單的解決方案... – Selvin 2011-12-31 14:51:25

+1

你的錯誤或問題是什麼?任何人都可以複製和粘貼煙幕的代碼。 – Robert 2011-12-31 15:52:59

+0

我所需要的一切就是一旦收到短信,以及如何獲得經緯度和地址,就會發生一些事情。所以,如果我失去了我的手機,然後我借給他人的電話,併發送短信到該手機,其中包含:「PhoneLocate」,它響應該手機的地址和座標。但是,只有當這個詞是PhoneLocate或者我指定的那個。我已經在android市場上有了一個應用程序,但是它是由應用程序發明者製作的,我想在eclipse中製作,但是在位置上沒有太多經驗。應用程序名稱是:PhoneLocator。 – MySoftware 2011-12-31 16:17:32

回答

0

我不會放棄任何東西的詳細說明,因爲你可以做一個谷歌搜索或搜索StackOverflow上爲您最需要的信息。

要獲取位置,請使用LocationManager並調用requestLocationUpdates。有很多教程解釋如何做到這一點。

要接收短信,你需要在你的清單,如下列宣佈BroadcastReceiver

<receiver android:name=".SmsReceiver"> 
        <intent-filter> 
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
        </intent-filter> 
       </receiver> 

在這個rec​​eivery你可以使用SmsMessage類來獲得從SMS必要的信息。

然後發回短信,您將使用SmsManager並調用sendTextMessage

但是
你真的需要自己完成這項工作。同樣值得注意的是,市場上已經有TON的手機定位器應用程序,所以這可能不是一個值得你去製作的應用程序。

而且,您可以搜索stackoverflow或Google以瞭解如何處理您需要的每件事。

如果你沒有做任何實際的Android編程(因爲你說你使用的應用程序的發明者),那麼你需要看看Developer's Guide