gpt4 book ai didi

Android LocationListener,onStatusChanged 和 onProviderDisabled 上的 AbstractMethodError

转载 作者:行者123 更新时间:2023-12-04 23:36:20 84 4
gpt4 key购买 nike

我有一个带有按钮的简单 Activity ,它使用 LocationManager 来尝试获取当前位置:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button buttonGps = findViewById(R.id.buttonGps);

final Context activity = this;

buttonGps.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!checkForPhonePermission()) {
return;
}

LocationManager locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);

locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDER, new LocationListener() {
@Override
public void onLocationChanged(@NonNull Location location) {
Log.d(TAG, location.getLatitude() + "");
}
}, Looper.myLooper());
}
});
}
我在 API 级别 22 的 Android Studio 中创建了一个模拟器,在授予权限后,在模拟器的 gps 开启的情况下,单击按钮时应用程序崩溃并出现此错误:
java.lang.AbstractMethodError: abstract method "void android.location.LocationListener.onStatusChanged(java.lang.String, int, android.os.Bundle)"
如果我在关闭 gps 的情况下按下按钮,则会收到此错误:
java.lang.AbstractMethodError: abstract method "void android.location.LocationListener.onProviderDisabled(java.lang.String)"
如果我在小米 A1 上尝试该应用程序,它只会在关闭 gps 并单击按钮时崩溃,而不会在 gps 开启并按下按钮时崩溃。
From the documentation ,这些方法都标有默认值,所以我不需要实现它们。
这种行为有什么原因吗?

最佳答案

只需在代码末尾添加这三个函数:

@Override
public void onProviderEnabled(@NonNull String provider) {

}

@Override
public void onProviderDisabled(@NonNull String provider) {

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {

}
并编写您想要在状态更改时执行的代码

关于Android LocationListener,onStatusChanged 和 onProviderDisabled 上的 AbstractMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64638260/

84 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com