3 votes

UserManager getUserCount() (Jelly Bean)

Je travaille sur cette classe : UserManager

public int getUserCount ()

Renvoie le nombre d'utilisateurs actuellement créés sur l'appareil.

Mon code est :

UserManager um = (UserManager) getSystemService(USER_SERVICE);
int count = um.getUserCount();
Log.i("count",""+count);

Il produit une erreur comme celle-ci :

 Caused by: java.lang.SecurityException: You need MANAGE_USERS permission to: query users
    at android.os.Parcel.readException(Parcel.java:1425)
    at android.os.Parcel.readException(Parcel.java:1379)
    at android.os.IUserManager$Stub$Proxy.getUsers(IUserManager.java:321)
    at android.os.UserManager.getUsers(UserManager.java:198)
    at android.os.UserManager.getUserCount(UserManager.java:186)
    at com.example.multiusertest.MainActivity.onCreate(MainActivity.java:52)
    at android.app.Activity.performCreate(Activity.java:5104)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

J'ai déjà ajouté cette permission manuellement dans le fichier Manifest. Quelqu'un sait-il pourquoi il est produit.

Fichier manifeste :

<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.MANAGE_USERS"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.multiusertest.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

3voto

K4emic Points 363

En MANAGE_USERS a un niveau de protection de signature|system ce qui signifie que l'application doit être signée avec la clé de la plate-forme. Voir ce fil sur XDA

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X