diff --git a/api/current.xml b/api/current.xml index 100f5bca0f93d..d002534f6f364 100644 --- a/api/current.xml +++ b/api/current.xml @@ -26404,6 +26404,17 @@ + + + + + + + * In some cases, a matching Activity may not exist, so ensure you + * safeguard against this. + *

+ * Input: The Intent's data URI specifies the application package name + * to be shown, with the "package" scheme. That is "package:com.my.app". + *

+ * Output: Nothing. + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_APPLICATION_DETAILS_SETTINGS = + "android.settings.APPLICATION_DETAILS_SETTINGS"; + /** * Activity Action: Show settings for system update functionality. *

diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 38fda09ad0ca5..c61f90ec7ed0d 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -14188,7 +14188,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen app.adjTypeCode = ActivityManager.RunningAppProcessInfo .REASON_SERVICE_IN_USE; app.adjSource = cr.binding.client; - app.adjTarget = s.serviceInfo.name; + app.adjTarget = s.name; } if ((cr.flags&Context.BIND_NOT_FOREGROUND) == 0) { if (client.curSchedGroup == Process.THREAD_GROUP_DEFAULT) { @@ -14210,7 +14210,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen app.adjTypeCode = ActivityManager.RunningAppProcessInfo .REASON_SERVICE_IN_USE; app.adjSource = a; - app.adjTarget = s.serviceInfo.name; + app.adjTarget = s.name; } } } @@ -14262,7 +14262,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen app.adjTypeCode = ActivityManager.RunningAppProcessInfo .REASON_PROVIDER_IN_USE; app.adjSource = client; - app.adjTarget = cpr.info.name; + app.adjTarget = cpr.name; } if (client.curSchedGroup == Process.THREAD_GROUP_DEFAULT) { schedGroup = Process.THREAD_GROUP_DEFAULT; @@ -14278,7 +14278,7 @@ public final class ActivityManagerService extends ActivityManagerNative implemen schedGroup = Process.THREAD_GROUP_DEFAULT; app.hidden = false; app.adjType = "provider"; - app.adjTarget = cpr.info.name; + app.adjTarget = cpr.name; } } } diff --git a/services/java/com/android/server/am/ContentProviderRecord.java b/services/java/com/android/server/am/ContentProviderRecord.java index c764635fa79d4..44c9742818dc2 100644 --- a/services/java/com/android/server/am/ContentProviderRecord.java +++ b/services/java/com/android/server/am/ContentProviderRecord.java @@ -17,6 +17,7 @@ package com.android.server.am; import android.app.IActivityManager.ContentProviderHolder; +import android.content.ComponentName; import android.content.pm.ApplicationInfo; import android.content.pm.ProviderInfo; import android.os.Process; @@ -29,6 +30,7 @@ class ContentProviderRecord extends ContentProviderHolder { final HashSet clients = new HashSet(); final int uid; final ApplicationInfo appInfo; + final ComponentName name; int externals; // number of non-framework processes supported by this provider ProcessRecord app; // if non-null, hosting application ProcessRecord launchingApp; // if non-null, waiting for this app to be launched. @@ -38,6 +40,7 @@ class ContentProviderRecord extends ContentProviderHolder { super(_info); uid = ai.uid; appInfo = ai; + name = new ComponentName(_info.packageName, _info.name); noReleaseNeeded = uid == 0 || uid == Process.SYSTEM_UID; } @@ -45,6 +48,7 @@ class ContentProviderRecord extends ContentProviderHolder { super(cpr.info); uid = cpr.uid; appInfo = cpr.appInfo; + name = cpr.name; noReleaseNeeded = cpr.noReleaseNeeded; }