summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-10-15 05:24:45 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-10-15 05:24:45 -0700
commit21a3e3da140c644d7f4ef7743749f23dc63bb217 (patch)
tree2dc7104eeba2ae09ddd7ba68a1222cf7733f8fbb
parentb20cf76893cc143acbeda1a7dc1f9d887ee4b1aa (diff)
parent7621450c5ed69f94195a95f59ffa2da2457800b8 (diff)
downloadandroid_packages_apps_BluetoothExt-21a3e3da140c644d7f4ef7743749f23dc63bb217.tar.gz
android_packages_apps_BluetoothExt-21a3e3da140c644d7f4ef7743749f23dc63bb217.tar.bz2
android_packages_apps_BluetoothExt-21a3e3da140c644d7f4ef7743749f23dc63bb217.zip
Merge "BTLogSave: Permissions check on Runtime"
-rw-r--r--BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Main.java32
-rw-r--r--BTLogSave/src/org/codeaurora/bluetooth/btlogsave/Utils.java5
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;