错误的第二个参数类型。发现';java.lang.String';,必需的';android.location.location';
您好,我正试图通过短信发送我的位置,但一直收到一条错误消息,上面写着:错误的第二个参数类型。发现';java.lang.String';,必需的';android.location.location';,java,android,gps,sms,Java,Android,Gps,Sms,您好,我正试图通过短信发送我的位置,但一直收到一条错误消息,上面写着: Wrong 2nd argument type. Found: 'java.lang.String', required: 'android.location.Location' 检查信息: sendLocationSMS(String,android.location.Location) 在FullscreenActivity中不能应用于(String,java.lang.String) 以下是我正在使用的特定代码行:
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", "");
在
sendLocationSMS(“我的电话号码”)
second arg是一个字符串,您应该使用Location
对象。尝试创建一个新位置并将其作为第二个参数。您正在传递一个空的字符串作为第二个参数,而您的方法要求您传递一个类型为位置的参数。因此更改sendLocationSMS(“我的电话号码”)
在第二个参数中传递类型为Location
的变量。在你的onCreate上试试这个
我注意到您没有阅读关于“Location”类的内容,所以请阅读它
正如答案所说,这显然是参数类型不匹配。
查找如何获取当前位置。如果不想传递实际的位置数据,只需创建一个新的位置对象并将其传递给方法调用 关于错误消息有什么不清楚的地方?该方法需要一个Location实例。“”是一个空字符串,不是location的实例。请不要像这样从根本上更改您的问题,尤其是在发布答案之后。它消除了该错误,但现在出现了一个新错误:无法解析构造函数'location()'location
类是您自己的实现吗?或者它是一个由Java实现的类?如果它是由Java实现的类,请附加文档的链接。或者直接转到位置
类,看看如何初始化它我自己的类添加到我的启动屏幕。我可以初始化它吗?你可以发布你的位置类吗?我会根据你的位置更新我的答案
classI没有单独设置位置类。我只是添加了依赖项,并认为代码可以处理它。如何创建location类?我创建了,它工作了,但现在在新位置出现了一个新错误:无法解析构造函数“location()”,您是如何创建的?您必须导入android.location.location代码>。然后,您应该能够使用newlocation(“gps”)创建一个新的位置实例代码>我通过创建location类解决了这个问题,但出现了一个新问题。我在顶部编辑了问题。我尝试了该页面上的所有操作,但仍然返回0.0,0.0您是否添加了清单权限?并在应用程序中授予权限?是的,我添加了粗略访问和精细访问权限,并且我的手机具有应用程序的位置权限。
String provider = ""; // change this to your provider
Location currentLocation = new Location(provider);
sendLocationSMS("MY PHONE NUMBER", currentLocation);