使用主应用程序中的 activity 在 android 库中调用 onRequestPermissionsResult
calling onRequestPermissionsResult inside of android library with activity from main app
所以我正在编写一个 Android 库,它将从手机获取 gps 坐标。现在当然为此我需要权限,所以我得到了:
if (ContextCompat.checkSelfPermission(contexts, ActivityCompat.checkSelfPermission(contexts, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(contexts, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, (new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}), MY_LOCATION_REQUEST_CODE);
Log.e("permissionsBlock", "Ask for permissions");
return;
}
我按照我的意愿让它完美地工作。它征求了我的许可,我给了它并且它有效。
现在的问题是:一旦获得许可,它不会自动 运行 我的其他代码,所以我搜索并发现我应该使用 onRequestPermissionsResult。所以我实现了它但没有任何反应,因为它在我的库中,如果我 post 它在我的应用程序中它会被触发但如果我把它放在我的库中则不会。有人知道如何解决这个问题吗?
感谢您的宝贵时间。
使用来自@NabinBhandari 的库可以大大简化此过程。如果你有类似的问题,试试吧。
所以我正在编写一个 Android 库,它将从手机获取 gps 坐标。现在当然为此我需要权限,所以我得到了:
if (ContextCompat.checkSelfPermission(contexts, ActivityCompat.checkSelfPermission(contexts, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(contexts, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, (new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}), MY_LOCATION_REQUEST_CODE);
Log.e("permissionsBlock", "Ask for permissions");
return;
}
我按照我的意愿让它完美地工作。它征求了我的许可,我给了它并且它有效。
现在的问题是:一旦获得许可,它不会自动 运行 我的其他代码,所以我搜索并发现我应该使用 onRequestPermissionsResult。所以我实现了它但没有任何反应,因为它在我的库中,如果我 post 它在我的应用程序中它会被触发但如果我把它放在我的库中则不会。有人知道如何解决这个问题吗?
感谢您的宝贵时间。
使用来自@NabinBhandari 的库可以大大简化此过程。如果你有类似的问题,试试吧。