На основе vedval у меня есть это решение.
public boolean checkForPermission(final String[] permissions, final int permRequestCode) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return true;
}
final List<String> permissionsNeeded = new ArrayList<>();
for (int i = 0; i < permissions.length; i++) {
final String perm = permissions[i];
if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {
if (shouldShowRequestPermissionRationale(permissions[i])) {
Snackbar.make(phrase, R.string.permission_location, Snackbar.LENGTH_INDEFINITE)
.setAction(android.R.string.ok, new View.OnClickListener() {
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onClick(View v) {
permissionsNeeded.add(perm);
}
});
} else {
// add the request.
permissionsNeeded.add(perm);
}
}
}
if (permissionsNeeded.size() > 0) {
// go ahead and request permissions
requestPermissions(permissionsNeeded.toArray(new String[permissionsNeeded.size()]), permRequestCode);
return false;
} else {
// no permission need to be asked so all good...we have them all.
return true;
}
}
/**
* Callback received when a permissions request has been completed.
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
if (requestCode == REQUEST_READ_LOCATION) {
int i = 0;
for (String permission : permissions ){
if ( permission.equals(Manifest.permission.ACCESS_FINE_LOCATION) && grantResults.length > 0 && grantResults[i] == PackageManager.PERMISSION_GRANTED) {
initLocationManager();
}
i++;
}
}
}
Фильтр экспорта муравья будет включать любой xml файл в тот же каталог, который имеет специальное предложение
<?eclipse.ant.import?>
элемент как его первый ребенок.
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse.ant.import?>
<project name="project" default="default" basedir=".">
...
</project>
Eclipse будет теперь включать следующую строку в build.xml
:
<import file="custom_build.xml"/>
Если Вы пишете свой собственный скрипт Ant, можно записать собственные цели, которые используют задача Ant для делегирования к сгенерированному build.xml .
кроме того, можно настроить 'разработчиков' проекта (свойства проекта В» Разработчики) для выполнения любого что-то другое, когда Вы разрабатываете проект, вручную или автоматически.
PDE имеет поддержку пользовательских обратных вызовов из сгенерированного build.xml в Ваш собственный скрипт Ant.
Скопируйте файл "templates/plugins/customBuildCallbacks.xml" с org.eclipse.pde.build в Вашей установке затмения и установите "customBuildCallbacks=true" в Вашем build.properties файле.
См. также страницу справки Eclipse
У Вас может быть отдельный файл типа "build" муравья для этих задач. Это - все, в чем Вы нуждаетесь.