Reputation: 19
I started learning android development and am still not that familiar with Java code. I would like to request permission dynamically using the following code which is from http://www.bytran.org/androidmpermissions.htm I used android-support-v4.jar to run this Java code.
It works fine if I set android:compileSdkVersion="25" in AndroidManifest.xml But if I set android:compileSdkVersion="26" or above, crashes at fragmentTransaction.add(0, request); Is there any way I can make it work for android:compileSdkVersion="33"?
Here is the code
public void askPermissions(Activity currentActivity)
{
final List<String> permissionsList = new ArrayList<String>();
if (currentActivity.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
permissionsList.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
if (currentActivity.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
final FragmentManager fragmentManager = currentActivity.getFragmentManager();
final Fragment request = new Fragment() {
@Override public void onStart()
{
super.onStart();
// Checking the read and write permissions
if (!permissionsList.isEmpty())
{
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]), REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
else
{
// Emitting a signal indicating that the permissions have been granted
responseStateStr = "Granted";
}
}
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
...
...
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.remove(this);
fragmentTransaction.commit();
}
};
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(0, request);
fragmentTransaction.commit();
}
Expected behaviors are
Upvotes: 1
Views: 29