您好,我正在尝试通过短信发送我的位置信息,但始终收到一条错误消息,内容是:
Wrong 2nd argument type. Found: 'java.lang.String', required: 'android.location.Location'
检查信息:
sendLocationSMS(String,android.location.Location)
在FullscreenActivity中不能应用于(String,java.lang.String)
以下是我正在使用的特定代码行:
private void sendLocationSMS(String phoneNumber, Location currentLocation) {
SmsManager smsManager = SmsManager.getDefault();
StringBuffer smsBody = new StringBuffer();
smsBody.append("http://maps.google.com?q=");
smsBody.append(currentLocation.getLatitude());
smsBody.append(",");
smsBody.append(currentLocation.getLongitude());
smsManager.sendTextMessage(phoneNumber, null, smsBody.toString(), null, null);
}
在我的onCreate中,我有这个:
sendLocationSMS("MY PHONE NUMBER", "");
答案 0 :(得分:0)
在sendLocationSMS("MY PHONE NUMBER", "");
的第二个arg是一个字符串中,您应该使用Location
对象。尝试创建一个新的位置,并将其作为第二个参数。
答案 1 :(得分:0)
您正在传递一个空的 String 作为第二个参数,而您的方法要求您传递一个Location
类型的参数。因此,更改sendLocationSMS("MY PHONE NUMBER", "");
以在第二个参数中传递类型为Location
的变量。在onCreate上尝试一下
我注意到您没有听说过“ Location”类,因此请阅读here
String provider = ""; // change this to your provider
Location currentLocation = new Location(provider);
sendLocationSMS("MY PHONE NUMBER", currentLocation);
答案 2 :(得分:0)
正如答案所说,这显然是参数类型不匹配。 查找here如何获取当前位置。如果您不想传递实际的位置数据,则只需创建一个新的Location对象并将其传递给方法调用即可。