我的应用程序为其小部件实现了配置活动,完全按照此处所述。
从 Android 14 开始,该 Activity 无法在后台自动启动,如here所述,但我在以这种方式实现小部件配置时无法控制意图,并且收到以下错误:
Without Android 14 BAL hardening this activity start would be allowed (missing opt in by PI sender)! [callingPackage: android; callingPackageTargetSdk: 34; callingUid: 1000; callingPid: -1; appSwitchState: 2; callingUidHasAnyVisibleWindow: false; callingUidProcState: PERSISTENT; isCallingUidPersistentSystemProcess: true; forcedBalByPiSender: BSP.NONE; intent: Intent { act=android.appwidget.action.APPWIDGET_CONFIGURE cmp=com.minar.birday/.activities.MinimalWidgetConfigurationActivity (has extras) }; callerApp: null; balAllowedByPiCreator: BSP.NONE; balAllowedByPiCreatorWithHardening: BSP.NONE; resultIfPiCreatorAllowsBal: BAL_ALLOW_ALLOWLISTED_UID; hasRealCaller: true; isCallForResult: true; isPendingIntent: true; realCallingPackage: bitpit.launcher; realCallingPackageTargetSdk: 34; realCallingUid: 10237; realCallingPid: 22638; realCallingUidHasAnyVisibleWindow: true; realCallingUidProcState: TOP; isRealCallingUidPersistentSystemProcess: false; originatingPendingIntent: PendingIntentRecord{cbf937 android startActivity}; realCallerApp: ProcessRecord{fef2b6a 22638:bitpit.launcher/u0a237}; realInVisibleTask: true; balAllowedByPiSender: BSP.ALLOW_FGS; resultIfPiSenderAllowsBal: BAL_ALLOW_VISIBLE_WINDOW]
问题很简单:如何解决此问题并修改传递 Context.BIND_ALLOW_ACTIVITY_STARTS 标志的意图?我只是希望该 Activity 以尽可能简单的方式像在 Android 13 及更低版本中一样工作。
长话短说:这个“错误”取决于启动器而不是应用程序本身,我的实现是正确的。我在 Niagara 启动器上测试它,但它不起作用(一个简单的测试是添加其他可自定义的小部件),但在另一个启动器上测试它就成功了。所以,再说一次,这是启动器应该修复的问题,而不是应用程序本身。