Слияние кода завершено, страница обновится автоматически
Для тестирования используйте следующие команды в оболочке adb shell:
shell@crespo:/ $ pm grant com.paymark.expenses android.permission.CAMERA
shell@crespo:/ $ pm revoke com.paymark.expenses android.permission.CAMERA
private View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v(TAG, "check & request permission");
PermissionHelper.checkRequestPermission(
PermissionHelperDemo.this,
new PermissionHelper.PermissionCallBack() {
@Override
public void onSuccess() {
Log.i(TAG, "Permission granted");
}
@Override
public void onFail() {
Log.e(TAG, "Critical permission not granted, aborting the ship");
}
},
PermissionHelper.Permissions.newPermissions(Manifest.permission.READ_CONTACTS, true, "RAtInaLE MesSAgE: wE kInDdA nEeD ThiS pErmISsion, cUZ wE jUSt wAnT IT", getPackageManager()),
PermissionHelper.Permissions.newPermissionGroup("Title", "Message",
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.READ_SMS, false),
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.READ_CALENDAR, false),
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.READ_CONTACTS, false)),
PermissionHelper.Permissions.newPermissionGroup("Title", "Message: call & body",
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.CALL_PHONE, false),
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.BODY_SENSORS, false),
PermissionHelper.Permissions.newSubPermissions(Manifest.permission.READ_SMS, false))
)
// the rest of this method is optional
.setPermissionResultCallBack(new PermissionHelper.PermissionResultCallBack() {
@Override
public void onUpdate(SimpleArrayMap result) {
PermissionHelper.RLog.i(TAG, "onUpdate:", result.size());
}
@Override
public void onFinalResult(SimpleArrayMap result) {
PermissionHelper.RLog.i(TAG, "onFinalResult:", result.size());
}
}).setPermissionShowRationalCallBack(new PermissionHelper.PermissionShowRationalCallBack() {
@Override
public void onShowRational(Activity activity, String rationaleTitle, String rationaleMessage,
final PermissionHelper.PostShowRationalCallBack postShowRationalCallBack) {
new AlertDialog.Builder(activity)
.setTitle(rationaleTitle)
.setMessage(rationaleMessage)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
RLog.i(TAG, "INLINE - YES");
postShowRationalCallBack.requestPermission(true);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void
``` onClick(DialogInterface диалог, int который) {
RLog.i(ТЕГ, «INLINE — НЕТ»);
}
})
.setIcon(android.R.drawable.ic_menu_help)
.show();
}
});
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )