如何在Android应用中管理受限制的配置文件?

Aru*_*n C 6 android android-4.3-jelly-bean restricted-profiles

受限制的配置文件现在可以从4.3中获得,我开始知道某些应用程序,如相机,gmail等在这些类型的配置文件中不可用.如何在我的应用程序中管理这些类型的条件?还有如何管理应用程序产品和受限制的配置文件设置对应我的应用程序?

Aru*_*n C 5

感谢user370305,即使我已经访问过了

http://developer.android.com/about/versions/android-4.3.html#RestrictedProfiles

我想从参考中改进它

https://www.youtube.com/watch?v=pdUcANNm72o

受限制的配置文件是Android Jelly Bean 4.3中引入的新功能,使您可以在共享平板电脑时为应用程序的用户提供更好的控制.

这些受限制的个人资料共享应用程序,主要用户帐户的谷歌帐户,但受限制.他们无法访问gmail,Play商店,日历等.主要用户可以选择每个应用程序的限制.

扩展UserManager类以管理这些限制

UserManager.getUserRestrictions返回对指定用户施加的用户范围限制

对于给定的包名,UserManager.getApplicationRestrictions返回包含此用户的任何已保存应用程序限制的包.只有具有此包名称的应用程序才能调用此方法.

如果您需要特定设置,请使用此意图过滤器

<receiver android:name="GetRestrictionsReceiver">
<intent-filter>
<action android:name="android.intent.action.GET_RESTRICTION_ENTRIES "/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

现在实现广播接收器与这样返回的限制条目列表

public  class GetRestrictionsReceiver extends BroadcastReceiver
    {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            final PendingResult result=goAsync();
            new Thread(){
                public void run(){
                    final Bundle extras=new Bundle();
                    ArrayList<RestrictionEntry> newEntries = initRestricions(context);
                    extras.putParcelableArrayList(Intent.EXTRA_RESTRICTIONS_LIST, newEntries);

                    result.setResult(Activity.RESULT_OK, null, extras);
                    result.finish();
                }

            }.start();

        }


    }
Run Code Online (Sandbox Code Playgroud)

RestrictionEntry

任何选择公开此类限制的应用程序都是通过实现处理ACTION_GET_RESTRICTION_ENTRIES操作的接收器来实现的.接收器然后返回一个结果包,其中包含一个名为"restrictions"的条目,其值为ArrayList.

限制条目有3种类型

  1. 布尔
  2. 单一选择
  3. 多项选择

您可以使用RestrictionEntry的不同方法来设置和获取不同类型的限制.

要从受限制的配置文件访问帐户,必须将android:restrictedAccountType属性添加到标记:

<application ...
    android:restrictedAccountType="com.example.account.type" >
Run Code Online (Sandbox Code Playgroud)


use*_*305 1

用户控制您构建的限制的 UI 由系统的“设置”应用程序管理。BroadcastReceiver要使应用程序的限制设置向用户显示,您必须通过创建接收意图的 来声明应用程序提供的限制ACTION_GET_RESTRICTION_ENTRIES。系统调用此意图来查询所有应用程序的可用限制,然后构建 UI 以允许主要用户管理每个受限配置文件的限制。

有关更多信息,请参阅http://developer.android.com/about/versions/android-4.3.html#RestrictedProfiles