我的活动:
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"
你有什么想法吗?
答案 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
的结果回调