Change the screen content density (DPI) dynamically, based on the app used.
These are the available versions:
• Version (A): Uses a non-root solution (system private interface for WindowManager class: IWindowManager), but requires the 'WRITE_SECURE_SETTINGS' permission to be granted to Tasker.
• Version (B): This (wm density) needs root (you can try ADB WiFi), at least, but doesn't need the 'WRITE_SECURE_SETTINGS' permission.
Configuring very low or very high values can cause some apps to fail to start, simply by not being prepared for such densities. Even the system itself (SystemUI app) can be compromised.
For those who want to experiment with low densities (high values), setting them permanently will reduce the work for the CPU/GPU, resulting in increased overall performance and improved battery life.
- Thanks to @JustRollWithIt (Reddit) for the base JF task. (reference)
- Go here to know how to grant the 'android.permission.WRITE_SECURE_SETTINGS' permission to Tasker.
- Two types of the same profile for each of the versions are available: App (to be used with all apps, except Tasker), Tasker (to be used only with Tasker). If you want each app to set a different DPI, just create a single profile for every app. Otherwise, include all apps within the main profile.
- Both 'App' and 'Tasker' profiles are bundled in a single prj file for easy importing, so import it as it is.
- Use 'Yellow' labeled actions to customize how the profiles work.
- To get the current DPI value use the 'Get Current DPI' task.
- If what you want is to change the screen resolution, go here.