假设我从我的非Android设备(即诺基亚1100或iPhone或任何手机)发送短信(短信可能包含特定代码)到我的Android设备。然后我开发的应用程序访问GPS以找出当前位置。我的应用程序向我的非Android设备发送短信,以通知我的Android设备当前存在的纬度和经度。
答案 0 :(得分:0)
您需要了解以下内容:
首先,您需要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)
那样执行此操作