За запросом нескольких разрешений сразу вы можете использовать этот метод link
compile 'com.kishan.askpermission:askpermission:1.0.3'
Если вы столкнулись с конфликтом в библиотеке поддержки, то
compile('com.kishan.askpermission:askpermission:1.0.3', {
exclude group: 'com.android.support'
})
Теперь попросите разрешение
new AskPermission.Builder(this)
.setPermissions(Manifest.permission.READ_CONTACTS, Manifest.permission.WRITE_EXTERNAL_STORAGE)
.setCallback(/* PermissionCallback */)
.setErrorCallback(/* ErrorCallback */)
.request(/* Request Code */);
разрешенное разрешение обратного вызова
public void onPermissionsGranted(int requestCode) {
// your code }
разрешено отклонение обратного вызова
public void onPermissionsDenied(int requestCode) {
// your code}
ErrorCallbacks
public void onShowRationalDialog(PermissionInterface permissionInterface, int requestCode) {
// Alert user by Dialog or any other layout that you want.
// When user press OK you must need to call below method.
permissionInterface.onDialogShown();
}
public void onShowSettings(PermissionInterface permissionInterface, int requestCode) {
// Alert user by Dialog or any other layout that you want.
// When user press OK you must need to call below method.
// It will open setting screen.
permissionInterface.onSettingsShown();
}
Лучшая рецензия, которую я видел по проблеме, от Строго Не введена . К моему знанию 2.3 не решил вопросов, что означает, что они все еще ненадежны.
У нас недавно были большие дебаты об этой внутренней части наша компания. Я думаю в конце дня, мы полагали, что, если Вы не можете таблицы пространства имен в базе данных, она не имеет никакого смысла к пространству имен модели. Мы обосновались на добавлении префикса наших моделей (Пользователь, UserAddress, UserEmailAddresses) и помещение их в пользовательский каталог, затем использование:
config.load_paths << "#{RAILS_ROOT}/app/models/users"
для загрузки моделей. Для управления многословием в наших моделях мы часто делаем это:
has_many :addresses, :class_name => "UserAddress"
При генерации, мы создаем его, как будто не было никакого пространства имен (пишите сценарий/генерируйте модели UserAddress), тогда вручную скопируйте его в пользовательский каталог.
Пожатие плеч. Я предполагаю в конце, который все это действительно дает Вам, более чистая структура каталогов, которая является на самом деле большей проблемой пользователю VIM как я, но хороший для TextMaters.
Я все еще избегал бы его. Что-либо полученное (который я не уверен, чем это честно было бы) будет определенно потеряно, когда Вы рассмотрите стычку и потерю краткости и ясности в Вашем коде.
Мое последнее приложение имеет 87 ресурсов и включает функции администрирования повсеместно. Я не вижу потребности в пространстве имен, по моему скромному мнению.