############################################# ___ _ _ _ _ | _ \ |_ ___| |_ ___ _ __(_)__| |_____ _ _ | _/ ' \/ _ \ _/ _ \ '_ \ / _| / / -_) '_| |_| |_||_\___/\__\___/ .__/_\__|_\_\___|_| |_| ############################################# NOTE: This Photopicker application is currently being developed for Android API level 33+. It is intended as a drop-in replacement to the legacy java application. If you are working on a pre API 33 OS, you might be looking for: /packages/providers/MediaProvider/src/com/android/providers/media/photopicker ############################################# # To install for development / testing: ############################################# Photopicker is bundled in the MediaProvider apex, so building that module will include the Photopicker APK. It is not recommended to build Photopicker as as a standalone application, as it relies on pregranted permissions that it obtains via its bundling in the MediaProvider apex. It is very important that Photopicker apk is signed by the same certificate as the installed MediaProvider.apk. Photopicker relies on signature permissions declared in MediaProvider, and will fail to obtain them if signed separately. Additionally, the DeviceConfig `enable_modern_picker` in the `mediaprovider` namespace needs to be enabled to `true` in order for the new photopicker to become active. ```adb shell device_config put mediaprovider enable_modern_picker true` ############################################# # Troubleshooting ############################################# Launching ACTION_PICK_IMAGES or ACTION_GET_CONTENT should bring you into the new PhotopickerActivity. If not, try debugging the intents to see if the activity is getting picked up by Android: adb shell pm query-activities -a "android.intent.action.GET_CONTENT" -t "image/*" This should give a print out of all activities (and their respective priorities) that can handle this intent and com.android.photopicker.MainActivity should be in the list. If not, try the installation steps above again. (Be sure to reboot) ############################################# # Testing ############################################# To run the tests: atest PhotopickerTests Note: PhotopickerTests bundles the application code with the tests, so the app does not need to be installed first for the test suite to be run. The test suite will bring along all the code it needs.