我的应用程序在Android 13中出现了闪屏,没有任何崩溃,甚至没有要求低Android版本的权限,它的工作绝对完美
public class SplashScreen extends AppCompatActivity {
String[] permissionsList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissionsList = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.POST_NOTIFICATIONS};
} else {
permissionsList = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
}
((RubberLoaderView) findViewById(R.id.loader1)).startLoading();
if (Utils.hasPermissions(this, permissionsList)) {
ActivityCompat.requestPermissions(this, Utils.permissions, Utils.perRequest);
} else {
gotoNext();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == Utils.perRequest) {
if (Utils.hasPermissions(this, permissionsList)) {
ActivityCompat.requestPermissions(this, Utils.permissions, Utils.perRequest);
} else {
gotoNext();
}
}
}
void gotoNext() {
new Handler().postDelayed(() -> {
startActivity(new Intent(SplashScreen.this, Home.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
finish();
}, 600);
}
这是我的代码,我不能理解的问题
通过理解您的一些代码,如果用户允许特定的运行时权限,您将导航到下一个屏幕。问题是在最近的Android版本中有一些权限变化,你的代码不尊重。
First Thewrite_extern_storageAPI Level 28之后的权限已弃用. 所以如果你请求这个权限,它将总是返回denied
。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
Second TheREAD_EXTERNAL_STORAGE在API Level 32之后已弃用. 如果你在Android 13中使用它,它将返回denied
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
或者,如果你想访问照片&Android 13其他应用视频您可以请求以下权限:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />