作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 SMSManager
的文本字符串中分配一个变量 LocationManager
?我想以短信形式发送带有坐标的短信。
私有(private)位置管理器 lm; 私有(private) LocationListener locationListener;
lm = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
locationListener);
lm.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
0,
0,
locationListener);
btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
btnSendSMS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sendSMS("55565", "coords" );
}
});
private void sendSMS(String phoneNumber, String message) {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);
}
最佳答案
这是我通过电子邮件和短信发送当前位置的代码希望它有帮助:)根据自己的需要修改
final LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
final LocationListener mlocListener = new MyLocationListener();
final Location location = mlocManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
updateWithNewLocation(location);
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
mc=mapview.getController();
mc.setZoom(18);
mlo=new MyLocationOverlay(this,mapview);
mapview.getOverlays().add(mlo);
mapview.invalidate();
}
public class MyLocationListener implements LocationListener
{
public void onLocationChanged(final Location location)
{
updateWithNewLocation(location);
}
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
}
}
private void updateWithNewLocation(final Location location)
{
mapview=(MapView) findViewById(R.id.map);
String latLongString;
TextView myLocationText;
myLocationText = (TextView)findViewById(R.id.text);
String addressString = "No address found";
if ( location != null )
{
final double lat = location.getLatitude();
final double lng = location.getLongitude();
latLongString = "Lat:" + lat + "\nLong:" + lng;
final double latitude = location.getLatitude();
final double longitude = location.getLongitude();
final Geocoder gc = new Geocoder(this, Locale.getDefault());
final GeoPoint myLocation = new GeoPoint((int)(lat * 1000000), (int)(lng * 1000000));
mapview.getController().animateTo(myLocation);
mapview.getController().setCenter(myLocation);
try
{
final List<Address> addresses = gc.getFromLocation(latitude, longitude, 4);
final StringBuilder sb = new StringBuilder();
if ( addresses.size() > 0 )
{
final Address address = addresses.get(0);
for ( int i = 0; i < address.getMaxAddressLineIndex(); i++ )
{
sb.append(address.getAddressLine(i)).append("\n");
}
sb.append(address.getLocality()).append("\n");
sb.append(address.getPostalCode()).append("\n");
sb.append(address.getCountryName());
}
addressString = sb.toString();
}
catch ( final IOException e )
{
}
}
else
{
latLongString = "No location found";
}
myLocationText.setText("Your Current Position is:\n" +
latLongString + "\n" + addressString);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inf = getMenuInflater();
inf.inflate(R.menu.newmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
String tv1;
TextView myLocationText;
myLocationText = (TextView)findViewById(R.id.text);
tv1= myLocationText.getText().toString();
switch (item.getItemId()) {
case R.id.msg:
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", tv1);
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
return(true);
case R.id.email:
/* Create the Intent */
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
/* Fill it with Data */
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"to@email.com"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, tv1);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
return(true);
}
return(super.onOptionsItemSelected(item));
}
关于android - 如何通过短信发送谷歌地图位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636100/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!