MPermissions 开源项目使用教程
1. 项目的目录结构及介绍
MPermissions 项目的目录结构如下:
MPermissions/
├── app/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── hongyangandroid/
│ │ │ │ └── mpermissions/
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── SampleActivity.java
│ │ │ └── res/
│ │ │ ├── layout/
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_sample.xml
│ │ │ └── values/
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ ├── proguard-rules.pro
│ └── ...
├── library/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── hongyangandroid/
│ │ │ │ └── mpermissions/
│ │ │ │ ├── MPermissions.java
│ │ │ │ └── PermissionHelper.java
│ │ │ └── res/
│ │ │ └── values/
│ │ │ └── strings.xml
│ ├── proguard-rules.pro
│ └── ...
├── build.gradle
├── settings.gradle
└── ...
目录结构介绍
-
app/
:包含应用程序的主要代码和资源文件。build.gradle
:应用程序的构建配置文件。src/main/java/com/hongyangandroid/mpermissions/
:包含主要的 Java 代码文件。MainActivity.java
:应用程序的主活动。SampleActivity.java
:示例活动。
src/main/res/
:包含应用程序的资源文件。layout/
:布局文件。values/
:字符串和样式文件。
-
library/
:包含权限管理库的代码和资源文件。build.gradle
:库的构建配置文件。src/main/java/com/hongyangandroid/mpermissions/
:包含权限管理库的 Java 代码文件。MPermissions.java
:权限管理的主要类。PermissionHelper.java
:权限管理的辅助类。
src/main/res/values/
:库的字符串文件。
-
build.gradle
:项目的根构建配置文件。 -
settings.gradle
:项目的设置文件。
2. 项目的启动文件介绍
项目的启动文件是 MainActivity.java
,位于 app/src/main/java/com/hongyangandroid/mpermissions/
目录下。
package com.hongyangandroid.mpermissions;
import android.Manifest;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_CODE_PERMISSION = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (PermissionHelper.checkPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_CODE_PERMISSION)) {
Toast.makeText(this, "Permission already granted", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
PermissionHelper.onRequestPermissionsResult(requestCode, permissions, grantResults, this, new PermissionHelper.PermissionListener() {
@Override
public void onPermissionGranted() {
Toast.makeText(MainActivity.this, "Permission granted", Toast.LENGTH_SHORT).show();