Можно отправить трансляцию только управляемому профилю, если мы можем получить идентификатор пользователя управляемого профиля.
Теперь, чтобы получить идентификатор пользователя, нам нужно прослушать трансляцию добавленного управляемого профиля.
Intent.ACTION_MANAGED_PROFILE_ADDED
Шаги, чтобы зарегистрироваться для прослушивания этой трансляции,
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_MANAGED_PROFILE_ADDED);
filter.addAction(Intent.ACTION_MANAGED_PROFILE_REMOVED);
context.registerReceiver(mManagedProfileListener, filter);
Теперь внутри onReceive, как получить идентификатор пользователя,
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_MANAGED_PROFILE_ADDED.equals(intent.getAction())
&& intent.hasExtra(Intent.EXTRA_USER)) {
UserHandle handle = intent.getExtras().getParcelable(Intent.EXTRA_USER);
userid = handle.getIdentifier();
}
}
Теперь отправьте широковещательную рассылку этому идентификатору пользователя (только система может отправить эту широковещательную рассылку),
mContext.sendBroadcastAsUser(intent, new UserHandle(userid));
Примечание. ID пользователя на самом деле является именем папки, которая создается в /data/user всякий раз, когда на устройстве настраивается управляемый профиль или AFW (Android For Work).
person
arungiri_10
schedule
03.03.2016