Remove the notification when FGS while-in-use permission is restricted.
Bug: 136219221 Test: atest cts/tests/app/src/android/app/cts/ActivityManagerApi29Test.java Change-Id: I996abab1c7032e5247883f3b06ba2bd82c425007
This commit is contained in:
parent
21e618d9ba
commit
c02592d7b2
@ -252,9 +252,6 @@ message SystemMessage {
|
||||
// Package: android
|
||||
NOTE_ID_WIFI_SIM_REQUIRED = 60;
|
||||
|
||||
// Inform the user a foreground service while-in-use permission is restricted.
|
||||
NOTE_FOREGROUND_SERVICE_WHILE_IN_USE_PERMISSION = 61;
|
||||
|
||||
// Display the Android Debug Protocol status
|
||||
// Package: android
|
||||
NOTE_ADB_WIFI_ACTIVE = 62;
|
||||
|
@ -4917,35 +4917,7 @@ public final class ActiveServices {
|
||||
}
|
||||
|
||||
// TODO: remove this toast after feature development is done
|
||||
private void showWhileInUsePermissionInFgsBlockedNotificationLocked(String callingPackage,
|
||||
String detailInfo) {
|
||||
final Context context = mAm.mContext;
|
||||
final String title = "Foreground Service While-in-use Permission Restricted";
|
||||
final String content = "App affected:" + callingPackage + ", please file a bug report";
|
||||
Notification.Builder n =
|
||||
new Notification.Builder(context,
|
||||
SystemNotificationChannels.ALERTS)
|
||||
.setSmallIcon(R.drawable.stat_sys_vitals)
|
||||
.setWhen(0)
|
||||
.setColor(context.getColor(
|
||||
com.android.internal.R.color.system_notification_accent_color))
|
||||
.setTicker(title)
|
||||
.setContentTitle(title)
|
||||
.setContentText(content)
|
||||
.setStyle(new Notification.BigTextStyle().bigText(detailInfo));
|
||||
final NotificationManager notificationManager =
|
||||
(NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
|
||||
notificationManager.notifyAsUser(null,
|
||||
SystemMessageProto.SystemMessage.NOTE_FOREGROUND_SERVICE_WHILE_IN_USE_PERMISSION,
|
||||
n.build(), UserHandle.ALL);
|
||||
}
|
||||
|
||||
// TODO: remove this toast after feature development is done
|
||||
// show a toast message to ask user to file a bugreport so we know how many apps are impacted by
|
||||
// the new background started foreground service while-in-use permission restriction.
|
||||
void showWhileInUseDebugNotificationLocked(int uid, int op, int mode) {
|
||||
StringBuilder packageNameBuilder = new StringBuilder();
|
||||
StringBuilder detailInfoBuilder = new StringBuilder();
|
||||
void showWhileInUseDebugToastLocked(int uid, int op, int mode) {
|
||||
for (int i = mAm.mProcessList.mLruProcesses.size() - 1; i >= 0; i--) {
|
||||
ProcessRecord pr = mAm.mProcessList.mLruProcesses.get(i);
|
||||
if (pr.uid != uid) {
|
||||
@ -4962,18 +4934,8 @@ public final class ActiveServices {
|
||||
+ " affected while-in-use permission:"
|
||||
+ AppOpsManager.opToPublicName(op);
|
||||
Slog.wtf(TAG, msg);
|
||||
packageNameBuilder.append(r.mRecentCallingPackage + " ");
|
||||
detailInfoBuilder.append(msg);
|
||||
detailInfoBuilder.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final String callingPackageStr = packageNameBuilder.toString();
|
||||
if (mAm.mConstants.mFlagForegroundServiceStartsLoggingEnabled
|
||||
&& !callingPackageStr.isEmpty()) {
|
||||
showWhileInUsePermissionInFgsBlockedNotificationLocked(callingPackageStr,
|
||||
detailInfoBuilder.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19339,7 +19339,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
@Override
|
||||
public void showWhileInUseDebugToast(int uid, int op, int mode) {
|
||||
synchronized (ActivityManagerService.this) {
|
||||
ActivityManagerService.this.mServices.showWhileInUseDebugNotificationLocked(
|
||||
ActivityManagerService.this.mServices.showWhileInUseDebugToastLocked(
|
||||
uid, op, mode);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user