Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Rigellin
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 3
#1

Android permissions - Программирование Android

08.12.2015, 15:41. Просмотров 1633. Ответов 5
Метки нет (Все метки)

Доброго времени суток! Пишу небольшое приложение, которое определяет местоположение пользователя с помощью Google Maps. Не получается настроить разрешение для location. Причина - не проходит проверку условие:

MainMapActivity.java:
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {...}
else googleMap.setMyLocationEnabled(true);

AndroidMainfest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="..." >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2015, 15:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Android permissions (Программирование Android):

Откуда берутся атрибуты android:layout_width и android:layout_height в элементе LinearLayout? - Программирование Android
Недавно начал изучать Android API, а сегодня более менее разобрал основы синтакиса XML. Затем стал разбирать следующий пример: ...

Ошибка: Caused by Android java.lang.ClassCastException: android.app.Application cannot be cast - Программирование Android
Здравствуйте. Очень нужен ваш совет. При запуске приложения появляется ошибка: Caused by: java.lang.ClassCastException:...

Android studio, как запускать программу сразу на android смартфоне подключенному к usb? - Программирование Android
android studio, как запускать программу сразу на android смартфоне подключенному к usb?

Android NDK. Как пользоваться? Когда стоит использовать его вместо Android SDK? - Программирование Android
Можно ли писать в нем готовые приложения Android?

Как приложение Android написать на С++ в Android NDK, чтоб получить *.apk? Нужен мануал - Программирование Android
Уже не в первый раз задаю вопрос. Молчание. В лучшем случае - &quot;RTFM&quot; и точка. Так вот, официального мануала, где есть ответ на...

Android.support.v4.app.FragmentActivity не работает в Android Studio - Программирование Android
объясните пожалуйста,как в андроид студио добавить вышеуказанную библиотеку,чтобы работало у меня вот это Активити package...

5
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
08.12.2015, 17:17 #2
с ходу не вспомню, но вроде там еще пара разрешений нужна.
что-то типа... ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, ACCESS_NETWORK_STATE, INTERNET.
не уверен.
0
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
08.12.2015, 20:45 #3
Rigellin,
Там не все так просто как хотелось бы :-)
Что меня умиляет почти ни в одном куске кода, которые в тырнете встречаются нет безошибочных вариантов.
Специально чтоли так сделано, чтобы люди бабосы платили за курсы повышения квалификации...хз.
В общем держи часть манифеста, похожее приложение пишу с геосервисом.

Все заработало с костылями.
Почему, зачем, как, откуда выдрал...уже не помню, мое приложение запустилось с этим.
Костылей много.
1 Нужно сервисы гугл плей запустить, дальше по обстоятельствам:

XML
1
2
3
4
5
6
7
8
9
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.helloworld" > <!-- следующее нужно обязательно добавлять в манифест, чтобы работали плей сервисы гугл -->
    <uses-sdk tools:overrideLibrary="com.google.android.gms.all,com.google.android.gms.ads,com.google.android.gms,         com.google.android.gms.analytics,com.google.android.gms.appindexing,com.google.android.gms.base,com.google.android.gms.measurement,com.google.android.gms.vision,         com.google.android.gms.appinvite,com.google.android.gms.appstate,com.google.android.gms.cast,com.google.android.gms.drive,         com.google.android.gms.fitness,com.google.android.gms.location,com.google.android.gms.maps,com.google.android.gms.games,         com.google.android.gms.gcm,com.google.android.gms.identity,com.google.android.gms.nearby,com.google.android.gms.panorama,         com.google.android.gms.plus,com.google.android.gms.safetynet,com.google.android.gms.wallet,com.google.android.gms.wearable" />
 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Зы тут есть все пермишены
0
Rigellin
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 3
08.12.2015, 22:52  [ТС] #4
Спасибо, но приложение всё равно вылетает
Скорее всего, я неправильно понимаю структуру работы с permissions. Помимо расширений в AndroidManifest я в активности добавляю следующий код (собранный из документации и различных примеров в нете):

if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {

if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.ACCESS_FINE_LOCATION)) {

} else {
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSIONS_REQUEST_LOCATION);
}
}
else {
googleMap.setMyLocationEnabled(true);
}

@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_LOCATION: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {

googleMap.setMyLocationEnabled(true);

} else {

// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
}
}
0
lostandleft
2 / 2 / 1
Регистрация: 04.12.2015
Сообщений: 96
09.12.2015, 03:39 #5
А если упростить немного для начала все это?
Не пробовали приложение запустить на чистую и на своем телефоне а не в эмуляторе?
Т.е. указать в манифесте стандарт как я указал, и закодить Java уже не упоминая разрешения?
Посмотреть на что ругается?
Дальше уже ошибки гуглить.

Зы код под сполер цепляйте, не читается же ничего.
0
Spelcrawler
528 / 498 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
09.12.2015, 09:45 #6
Rigellin, какая версия андроида? Такие проверки работают только с 6, до него все разрешения из манифеста всегда есть и проверять ничего не нужно.
0
09.12.2015, 09:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2015, 09:45
Привет! Вот еще темы с ответами:

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете? - Программирование Android
Какую фирму посоветуете?

Запуск игры mr.Nom через Android Studio (по книге марио цехнер программирование игр под android) - Программирование Android
Привет всем! Для тех кто читал книгу - в конце 6ой главы мы закончили писать код игры. В книге написано что - игра готова. Но в самих...

Меню Android Manifest в Android Studio - Программирование Android
Всем привет. Такой вопрос. Перешел c Eclipse на Android Studio и столкнулся со следующим: когда открываешь тот же манифест в AS, то...

Подключение Android Annotations к Android Studio - Программирование Android
Каким образом это сделать? Есть два .jar файла: androidannotations-3.2.jar androidannotations-api-3.2.jar При подключении через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru