Не добавляется permission.ACCOUNT_MANAGER.

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
shved
Сообщения: 3
Зарегистрирован: 03 июл 2013, 09:57

Не добавляется permission.ACCOUNT_MANAGER.

Сообщение shved » 05 окт 2013, 12:43

При добавление в AndroidManifest.xml строчки:

Код: Выделить всё

<uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
выдаёт ошибку: "Permission is only granted to system apps".
Подскажите пожалуйста что делать?

AndroidManifest.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCOUNT_MANAGER" />
     
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.test.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>
    
</manifest>

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Не добавляется permission.ACCOUNT_MANAGER.

Сообщение trew » 05 окт 2013, 15:34

В интерфейсе Eclipse:
Window -> Preferences -> Android -> Lint Error Checking
в списке найти ProtectedPermission (это где-то посредине списка)
и установите для него другую категорию (т.е. не Error)
тогда проект должен скомпилироваться.
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

shved
Сообщения: 3
Зарегистрирован: 03 июл 2013, 09:57

Re: Не добавляется permission.ACCOUNT_MANAGER.

Сообщение shved » 05 окт 2013, 21:41

О спасибо большое, действительно компилятор пропустил.

Но подскажите пожалуйста мне ещё такую вещь. Я пытаюсь получить список аккаунтов на устройстве и для этого пытаюсь пользоваться "AccountManager.getAccountsByType", но как только дело до ходит до этого метода приложение крошится и eclipse выдаёт сообщения во вложении. Что нужно сделать чтобы получить список аккаунтов на устройстве?

Вот собственно мой "MainActivity.java":

Код: Выделить всё

package com.example.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
import android.accounts.*;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        AccountManager ac = AccountManager.get(getApplicationContext());
        Account[] account =ac.getAccountsByType("com.google");
        ((TextView)findViewById(R.id.MyLabel)).setText(account[0].name);
        return true;
    }
    
}
Вложения
Choregrapher.class.png
Choregrapher.class.png (55.02 КБ) 4679 просмотров

Аватара пользователя
trew
Сообщения: 450
Зарегистрирован: 28 сен 2013, 17:34

Re: Не добавляется permission.ACCOUNT_MANAGER.

Сообщение trew » 05 окт 2013, 22:23

У меня ещё мало опыта, но попробую помочь.
Вот код без типа акаунта, посмотрите что-то видно на вкладке LogCat в eclipse

Код: Выделить всё

accountManager = AccountManager.get(getApplicationContext());
Account[] accounts = accountManager.getAccounts();
for ( int i = 0; i < accounts.length; i++ )
{
    Log.d(TAG, accounts[i].name + " - " + accounts[i].type);            
}
Log.d(TAG,... объявляется в начале класса, пример ниже

Код: Выделить всё

 final String LOG_TAG = "myLogs";

и ещё, может разрешений в файле манифеста не достаточно

Код: Выделить всё

<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.

shved
Сообщения: 3
Зарегистрирован: 03 июл 2013, 09:57

Re: Не добавляется permission.ACCOUNT_MANAGER.

Сообщение shved » 06 окт 2013, 17:08

Да, Вы абсолютно правы. Просто не хватало разрешений. Большое Вам спасибо.

Ответить