From 8ee04ba82a1455ac08bb2e6a729bdc7ebbe6c4da Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期一, 09 九月 2019 18:52:40 +0800 Subject: [PATCH] 加入权限管理类;加入日志写入SD文件 --- app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index f977e6f..a8d8d37 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -1,23 +1,31 @@ package safeluck.drive.evaluation; +import android.Manifest; +import android.app.AlertDialog; import android.arch.lifecycle.Observer; -import android.arch.lifecycle.ViewModelProvider; import android.arch.lifecycle.ViewModelProviders; +import android.content.DialogInterface; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.util.Log; import android.widget.Toast; import me.yokeyword.fragmentation.SupportActivity; import safeluck.drive.evaluation.fragment.HomeFragment; +import safeluck.drive.evaluation.util.MyLog; +import safeluck.drive.evaluation.util.PermissionManager; import safeluck.drive.evaluation.viewmodels.MainViewModel; public class MainActivity extends SupportActivity { + private static final int PERMISSIONS_REQUEST_CODE = 1001; private String TAG = MainActivity.class.getCanonicalName(); + + private PermissionManager mPermissionsManager ; + String[] PERMISSIONS = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA}; @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,13 +34,43 @@ setContentView(R.layout.activity_main); + mPermissionsManager = new PermissionManager(this) { + @Override + public void authorized(int requestCode) { + + } + + @Override + public void noAuthorization(int requestCode, String[] lackPermissions) { + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle("鎻愮ず"); + builder.setMessage("缂哄皯"+lackPermissions+"鏉冮檺"); + builder.setPositiveButton("璁剧疆鏉冮檺", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + PermissionManager.startAppSettings(getApplicationContext()); + } + }); + builder.create().show(); + } + + @Override + public void ignore() { + + } + }; + + + + + MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class); mainViewModel.getJson().observe(this, new Observer<String>() { @Override public void onChanged(@Nullable String json) { Toast.makeText(MainActivity.this, json, Toast.LENGTH_SHORT).show(); - Log.i(TAG,"json=========="+json); - Log.i(TAG,"json=========="+Thread.currentThread().getName()); + MyLog.i(TAG,"json=========="+json); + MyLog.i(TAG,"json=========="+Thread.currentThread().getName()); } }); @@ -42,4 +80,17 @@ loadRootFragment(R.id.fl_container,HomeFragment.newInstance()); } } + + + @Override + protected void onResume() { + super.onResume(); + mPermissionsManager.checkPermissions(PERMISSIONS_REQUEST_CODE,PERMISSIONS); + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + mPermissionsManager.recheckPermissions(PERMISSIONS_REQUEST_CODE,permissions,grantResults); + } } -- Gitblit v1.8.0