Sud*_*pta 5 java sms gps android
我有一个应用程序,我需要将他的位置(经度和纬度)发送给其他人从他那里收到短信.我会以某种方式获取我的位置(经度和纬度)并将其作为文本回复短信然后把它发送给其他人.但是现在我遇到了如何获取我的位置并将其作为文本回复sms的问题.现在我已经编写了一个代码,该代码在收到来自其他人的短信时发送回复消息.谁能告诉我如何获取我的位置并将其作为短信?
这是我发送回复邮件的代码:
public void onReceive(Context context,Intent intent){
Intent m=new Intent(context, ReceivelocationActivity.class);
PendingIntent pi=PendingIntent.getBroadcast(context, 0, m, 0);
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
String str2="";
String str3="";
String autoReplyToken = "Request_Accepted";
if (bundle != null)
{
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from " + msgs[i].getOriginatingAddress();
str2=msgs[i].getOriginatingAddress();
str += " :";
str += msgs[i].getMessageBody().toString();
str3=msgs[i].getMessageBody().toString();
str += "\n";
}
//---display the new SMS message---
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
SmsManager sms = SmsManager.getDefault();
boolean isAutoReply = str3.startsWith(autoReplyToken);
/* As suggested by Dan J */
Criteria hdCrit = new Criteria();
hdCrit.setAccuracy(Criteria.ACCURACY_COARSE);
hdCrit.setAltitudeRequired(false);
hdCrit.setBearingRequired(false);
hdCrit.setCostAllowed(true);
hdCrit.setPowerRequirement(Criteria.POWER_LOW);
hdLocMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
hdLocProvider = hdLocMgr.getBestProvider(hdCrit, true);
Location location = hdLocMgr.getLastKnownLocation(hdLocProvider);
Double dlat = location.getLatitude();
Double dlon = location.getLongitude();
String msg = dlat + "," + dlon ;
/* As suggested by Dan J */
if (!isAutoReply) {
String autoReplyText = autoReplyToken + msg;
sms.sendTextMessage(str2, null, autoReplyText, pi, null);
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何在"msg"变量中发送实际位置而不是字符串"location".任何有任何想法的人请告诉我?提前致谢.
有关如何获取经度和纬度的 信息,请参阅此答案:
然后只需改变
String msg = "location" ;
Run Code Online (Sandbox Code Playgroud)
到
String msg = dlat + ", " + dlon;
Run Code Online (Sandbox Code Playgroud)
您还需要向清单 XML 添加适当的权限(例如,请参阅此处的我的答案)。
| 归档时间: |
|
| 查看次数: |
2548 次 |
| 最近记录: |