GPS/ネットワークから受信した位置をSMSに出力しようとしています。ジオコードを使用して、リストに try catch を使用してみましたが、getAddressLine をボタン setOnClickListener に出力するには助けが必要です。これが私のコードです。ありがとうございました。
LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
//conversion
Criteria criteria = new Criteria();
String bp = lm.getBestProvider(criteria, false);
Location location = lm.getLastKnownLocation(bp);
double lat = location.getLatitude();
double lon = location.getLongitude();
final Geocoder gc = new Geocoder(this, Locale.getDefault());
try{
List<Address> address;
address = gc.getFromLocation(lat, lon, 1);
Address ad = address.get(0);
StringBuffer geo = new StringBuffer();
geo = geo.append(ad.getAddressLine(0));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//ends here
LocationListener ll = new LocationListener(){
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
Log.d("Location", location.toString());
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, ll);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
そして、ボタンのコード
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent loc = new Intent (Intent.ACTION_VIEW);
loc.putExtra("sms_body", geo);
loc.setType("vnd.android-dir/mms-sms");
startActivity(loc);
}
});
インテントのために loc.putExtra に出力を表示したかったのです。