在Android 6上没有从AppCompatActivity调用onRequestPermissionsResult

时间:2017-08-28 12:52:17

标签: java android runtime android-6.0-marshmallow android-permissions

我的活动:

public class SplashActivity extends AppCompatActivity
{
    private static final int PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 55;

然后,在创建:

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
     if(getIntent().getAction().equals(Intent.ACTION_SEND) || getIntent().getAction().equals(Intent.ACTION_SEND_MULTIPLE))
        {if(ContextCompat.checkSelfPermission(this, (android.Manifest.permission.WRITE_EXTERNAL_STORAGE))!= PackageManager.PERMISSION_GRANTED)
            {
                ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);

            }
}

问题是在Android 6上永远不会调用覆盖方法onRequestPermissionsResult。但是,它在Android 7和Android 8上运行良好。

我的活动定义如下:

 <activity
            android:name=".SplashActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:noHistory="false"

你有什么想法吗?

2 个答案:

答案 0 :(得分:1)

以下是您可能会检查的几个链接,但我不认为onRequestPermissionsResult在Android 6中工作,在您的代码中我从未看到该行使用LINKS BELOW

http://androidkeeda.com/android-marshmallow-permissions-example

答案 1 :(得分:1)

请勿在{{1​​}}中使用noHistory=true进行此活动(或AndroidManifest),否则该活动将在Android 6上被解除,并且不会收到包含Intent.FLAG_ACTIVITY_NO_HISTORY的结果回调