Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误的第二个参数类型。发现';java.lang.String';,必需的';android.location.location';_Java_Android_Gps_Sms - Fatal编程技术网

错误的第二个参数类型。发现';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);