Loading AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -2277,7 +2277,7 @@ android:name="Settings$AppUsageAccessSettingsActivity" android:exported="true" android:label="@string/usage_access_title"> <intent-filter> <intent-filter android:priority="1"> <action android:name="android.settings.USAGE_ACCESS_SETTINGS"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="package"/> Loading src/com/android/settings/applications/AppInfoBase.java +20 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import androidx.fragment.app.Fragment; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; Loading Loading @@ -178,6 +179,25 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment if (!(activity instanceof SettingsActivity)) { return false; } // Check the permission of the calling package if the device supports multi-pane. if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(activity)) { final String callingPackageName = ((SettingsActivity) activity).getInitialCallingPackage(); if (TextUtils.isEmpty(callingPackageName)) { Log.w(TAG, "Not able to get calling package name for permission check"); return false; } if (mPm.checkPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL, callingPackageName) != PackageManager.PERMISSION_GRANTED) { Log.w(TAG, "Package " + callingPackageName + " does not have required permission " + Manifest.permission.INTERACT_ACROSS_USERS_FULL); return false; } return true; } try { int callerUid = ActivityManager.getService().getLaunchedFromUid( activity.getActivityToken()); Loading Loading
AndroidManifest.xml +1 −1 Original line number Diff line number Diff line Loading @@ -2277,7 +2277,7 @@ android:name="Settings$AppUsageAccessSettingsActivity" android:exported="true" android:label="@string/usage_access_title"> <intent-filter> <intent-filter android:priority="1"> <action android:name="android.settings.USAGE_ACCESS_SETTINGS"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="package"/> Loading
src/com/android/settings/applications/AppInfoBase.java +20 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import androidx.fragment.app.Fragment; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.activityembedding.ActivityEmbeddingUtils; import com.android.settings.applications.manageapplications.ManageApplications; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; Loading Loading @@ -178,6 +179,25 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment if (!(activity instanceof SettingsActivity)) { return false; } // Check the permission of the calling package if the device supports multi-pane. if (ActivityEmbeddingUtils.isEmbeddingActivityEnabled(activity)) { final String callingPackageName = ((SettingsActivity) activity).getInitialCallingPackage(); if (TextUtils.isEmpty(callingPackageName)) { Log.w(TAG, "Not able to get calling package name for permission check"); return false; } if (mPm.checkPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL, callingPackageName) != PackageManager.PERMISSION_GRANTED) { Log.w(TAG, "Package " + callingPackageName + " does not have required permission " + Manifest.permission.INTERACT_ACROSS_USERS_FULL); return false; } return true; } try { int callerUid = ActivityManager.getService().getLaunchedFromUid( activity.getActivityToken()); Loading