diff --git a/app/src/main/java/org/sensingkit/crowdsensing_android/CrowdSensing.java b/app/src/main/java/org/sensingkit/crowdsensing_android/CrowdSensing.java index 5008691..88cbb6f 100644 --- a/app/src/main/java/org/sensingkit/crowdsensing_android/CrowdSensing.java +++ b/app/src/main/java/org/sensingkit/crowdsensing_android/CrowdSensing.java @@ -21,13 +21,17 @@ package org.sensingkit.crowdsensing_android; +import android.Manifest; +import android.app.Activity; import android.app.ActivityManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.PackageManager; import android.os.Bundle; import android.os.IBinder; +import android.support.v4.app.ActivityCompat; import android.support.v7.app.ActionBarActivity; import android.util.Log; @@ -59,9 +63,30 @@ private enum SensingStatus { // Services SensingService mSensingService; boolean mBound = false; + private static final int REQUEST_EXTERNAL_STORAGE = 1; + private static String[] PERMISSIONS_STORAGE = { + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + }; + //persmission method -> check if the permissions are OK + public static void verifyStoragePermissions(Activity activity) { + // Check if we have read or write permission + int writePermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); + int readPermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE); + + if (writePermission != PackageManager.PERMISSION_GRANTED || readPermission != PackageManager.PERMISSION_GRANTED) { + // We don't have permission so prompt the user + ActivityCompat.requestPermissions( + activity, + PERMISSIONS_STORAGE, + REQUEST_EXTERNAL_STORAGE + ); + } + } @Override protected void onCreate(Bundle savedInstanceState) { + verifyStoragePermissions(this); // verify once the permission ( only for Marshmallow) super.onCreate(savedInstanceState); setContentView(R.layout.activity_crowd_sensing);