Android 权限请求:从未调用/到达 onRequestPermissionsResult - 可能的上下文问题
Android Permission Request: onRequestPermissionsResult is never called / reached - Possible Context Issue
请求权限:
public class GooglePermissions extends ExternalClass
{
//...
private void checkPermissions()
{
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions( (Activity) mContext, new String[]{Manifest.permission.GET_ACCOUNTS}, REQUEST_GET_ACCOUNTS);
}
}
//...
}
权限请求结果:
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
{
switch (requestCode)
{
case REQUEST_GET_ACCOUNTS:
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Log.d(TAG, "Permissions Granted");
}
else
{
Log.d(TAG, "Permissions Denied");
}
return;
}
}
}
我正在尝试执行 Android 权限检查 - 但是从未调用 onRequestPermissionsResult
方法。
我怀疑罪魁祸首是:(Activity) mContext
...但是我不能简单地使用:'this' 因为包含此代码的 class 不是 Activity。
欢迎提出建议。
onRequestPermissionsResult()
需要在您传递给 requestPermissions()
的 Activity
上实现。
Suggestions are appreciated
在您的 activity 或片段中请求您的许可。无论如何,这些权限请求必须与您的 UI 相关联,因此它们对用户有意义(例如,他们点击某某操作栏项目,这触发了权限请求)。
如果您希望将权限请求的结果转发给其他对象,欢迎您这样做。
请求权限:
public class GooglePermissions extends ExternalClass
{
//...
private void checkPermissions()
{
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions( (Activity) mContext, new String[]{Manifest.permission.GET_ACCOUNTS}, REQUEST_GET_ACCOUNTS);
}
}
//...
}
权限请求结果:
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
{
switch (requestCode)
{
case REQUEST_GET_ACCOUNTS:
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Log.d(TAG, "Permissions Granted");
}
else
{
Log.d(TAG, "Permissions Denied");
}
return;
}
}
}
我正在尝试执行 Android 权限检查 - 但是从未调用 onRequestPermissionsResult
方法。
我怀疑罪魁祸首是:(Activity) mContext
...但是我不能简单地使用:'this' 因为包含此代码的 class 不是 Activity。
欢迎提出建议。
onRequestPermissionsResult()
需要在您传递给 requestPermissions()
的 Activity
上实现。
Suggestions are appreciated
在您的 activity 或片段中请求您的许可。无论如何,这些权限请求必须与您的 UI 相关联,因此它们对用户有意义(例如,他们点击某某操作栏项目,这触发了权限请求)。
如果您希望将权限请求的结果转发给其他对象,欢迎您这样做。