diff options
author | Matadeen Mishra <matade@codeaurora.org> | 2015-09-22 16:37:27 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-12 08:18:11 -0700 |
commit | 7621450c5ed69f94195a95f59ffa2da2457800b8 (patch) | |
tree | 08cd475805cf83bae8b9c31ed692290de9fa6162 /BTLogSave/src/org/codeaurora/bluetooth/btlogsave | |
parent | aade8b00b788b258b6537bb0d5efab4dbde19f98 (diff) | |
download | android_packages_apps_BluetoothExt-7621450c5ed69f94195a95f59ffa2da2457800b8.tar.gz android_packages_apps_BluetoothExt-7621450c5ed69f94195a95f59ffa2da2457800b8.tar.bz2 android_packages_apps_BluetoothExt-7621450c5ed69f94195a95f59ffa2da2457800b8.zip |
BTLogSave: Permissions check on Runtime
Check permission on Runtime for WRITE_EXTERNAL_STORAGE
granted or not on M, If not granted then request for
WRITE_EXTERNAL_STORAGE permission.
CRs-Fixed: 921068
Change-Id: I10dbd020b0e6788a02b53255333ad090dd99741b
Diffstat (limited to 'BTLogSave/src/org/codeaurora/bluetooth/btlogsave')
-rw-r--r-- | BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java | 32 | ||||
-rw-r--r-- | BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java | 5 |
2 files changed, 36 insertions, 1 deletions
diff --git a/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java b/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java index 25c3397..6ab5069 100644 --- a/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java +++ b/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java @@ -46,6 +46,10 @@ import android.view.MenuItem; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; +import android.util.Log; +import android.Manifest; +import android.content.pm.PackageManager; +import android.os.Build; public class Main extends Activity{ @@ -53,11 +57,39 @@ public class Main extends Activity{ public static int log_file_size = 100; public static LinearLayout lv; public static int size_pos = 0; + private static int MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1; + public static boolean mHasCriticalPermissions = true; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); + checkPermissions(); finish(); } + private void checkPermissions() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + Log.v(TAG, "not running on M, skipping permission checks" + Build.VERSION.SDK_INT); + return; + } + if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); + } else { + Log.d(Main.TAG,"Permission Already granted."); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + if (MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE == requestCode) { + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + mHasCriticalPermissions = true; + Log.d(Main.TAG,"Permission granted"); + } else { + mHasCriticalPermissions = false; + Log.d(Main.TAG,"Permission not granted"); + } + } + } + } diff --git a/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java b/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java index c5bcb02..c763871 100644 --- a/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java +++ b/BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java @@ -65,7 +65,10 @@ import java.lang.Runnable; public class Utils{ static { - new File("/sdcard/BtLogKit").mkdir(); + if (Main.mHasCriticalPermissions) + new File("/sdcard/BtLogKit").mkdir(); + else + Log.d(Main.TAG,"Don't have sdcard permission."); } private static Process process_logcat_start,process_logcat_clear,process_logcat_move; |