mirror of
https://github.com/M66B/NetGuard.git
synced 2025-02-23 06:41:05 +00:00
Check runtime permissions (Android M)
This commit is contained in:
parent
b412495a8c
commit
2c2480f052
2 changed files with 36 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
|||
package="eu.faircode.netguard">
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="com.android.vending.BILLING" />
|
||||
|
|
|
@ -19,6 +19,7 @@ package eu.faircode.netguard;
|
|||
Copyright 2015 by Marcel Bokhorst (M66B)
|
||||
*/
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.BroadcastReceiver;
|
||||
|
@ -27,6 +28,8 @@ import android.content.DialogInterface;
|
|||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.net.VpnService;
|
||||
|
@ -55,6 +58,7 @@ import android.widget.CompoundButton;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ActivityMain extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
@ -72,6 +76,7 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
private static final int REQUEST_IAB = 2;
|
||||
private static final int REQUEST_INVITE = 3;
|
||||
private static final int REQUEST_LOGCAT = 4;
|
||||
private static final int REQUEST_PERMISSIONS = 5;
|
||||
|
||||
private static final int MIN_SDK = Build.VERSION_CODES.LOLLIPOP;
|
||||
|
||||
|
@ -245,6 +250,36 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
|
|||
|
||||
// Fill application list
|
||||
updateApplicationList();
|
||||
|
||||
// Check runtime permissions
|
||||
checkRuntimePermissions();
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
private void checkRuntimePermissions() {
|
||||
List<String> listPermission = new ArrayList<String>();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) try {
|
||||
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS);
|
||||
for (String permission : info.requestedPermissions) {
|
||||
boolean granted = (checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED);
|
||||
Log.i(TAG, permission + '=' + granted);
|
||||
if (!granted)
|
||||
listPermission.add(permission);
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException ex) {
|
||||
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
|
||||
}
|
||||
|
||||
// Request runtime permissions
|
||||
if (!listPermission.isEmpty())
|
||||
requestPermissions(listPermission.toArray(new String[0]), REQUEST_PERMISSIONS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
Log.i(TAG, "onRequestPermissionsResult");
|
||||
for (int i = 0; i < permissions.length; i++)
|
||||
Log.i(TAG, permissions[i] + '=' + (grantResults[i] == PackageManager.PERMISSION_GRANTED));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue