Documenting the findings for future reference:
The following are code from
RANGE
Also,
see: http://stackoverflow.com/questions/33331073/android-what-to-choose-for-requestcode-values
The following are code from
android.support.v4.app.FragmentActivity /**
 * Modifies the standard behavior to allow results to be delivered to fragments.
 * This imposes a restriction that requestCode be <= 0xffff.
 */
@Override
public void startActivityForResult(Intent intent, int requestCode) {
    if (requestCode != -1 && (requestCode&0xffff0000) != 0) {
        throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
    }
    super.startActivityForResult(intent, requestCode);
}
@Override
public final void validateRequestPermissionsRequestCode(int requestCode) {
    // We use 8 bits of the request code to encode the fragment id when
    // requesting permissions from a fragment. Hence, requestPermissions()
    // should validate the code against that but we cannot override it as
    // we can not then call super and also the ActivityCompat would call
    // back to this override. To handle this we use dependency inversion
    // where we are the validator of request codes when requesting
    // permissions in ActivityCompat.
    if (mRequestedPermissionsFromFragment) {
        mRequestedPermissionsFromFragment = false;
    } else if ((requestCode & 0xffffff00) != 0) {
        throw new IllegalArgumentException("Can only use lower 8 bits for requestCode");
    }
}
RANGE
startActivityForResult() in FragmentActivity requires the requestCode to be of 16 bits, meaning the range is from 0 to 65535.Also,
validateRequestPermissionsRequestCode in FragmentActivity requires requestCode to be of 8 bits, meaning the range is from 0 to 255.see: http://stackoverflow.com/questions/33331073/android-what-to-choose-for-requestcode-values
No comments:
Post a Comment