我最近更新了一個應用程序到targetSdkVersion爲23,並實現了對各種權限的請求。我使用ActivityCompat.requestPermissions()最初的嘗試導致一個IllegalArgumentException從FragmentActivity的內部拋出:爲什麼ActivityCompat.requestPermissions()只接受0-255之間的整數請求代碼?
int REQUEST_CODE_A = 9001;
ActivityCompat.requestPermissions(new String[ {Manifest.permission.WRITE_CONTACTS}, REQUEST_CODE_A); // crashes
java.lang.IllegalArgumentException異常:可用於requestCode
,如果只使用低8位然而請求代碼在0-255之間,一切都很好,權限請求按預期工作。
int REQUEST_CODE_B = 101;
ActivityCompat.requestPermissions(new String[ {Manifest.permission.WRITE_CONTACTS}, REQUEST_CODE_B); // works correctly
所以問題是,有什麼理由限制在這樣的API中的整數的可能值?使用一個字節可以提供相同的信息,但是有意識的決定已經(顯然)被用來使用整數來代替。這僅僅是一個允許未來可擴展性的情況嗎?
可能重複[Android:請求代碼值選擇什麼?](http://stackoverflow.com/questions/33331073/android-what-to-choose-for-requestcode-values) –