在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:EasyPermissionsActivity开源软件地址:https://gitee.com/hm0603/EasyPermissionsActivity开源软件介绍:EasyPermissionsActivity项目介绍超级简单的 Android6.0动态权限申请程序 Github地址:https://github.com/lhm0603/EasyPermissionsActivity Gitee 地址:https://gitee.com/hmOS/EasyPermissionsActivity 使用说明EasyPermissionsActivity 支持 Android 4.0及更高版本,但只有在 Android6.0动态权限 Api 才有效。 开始使用引入 EasyPermissionsActivity这里告诉你如何在项目中引入 EasyPermissionsActivity 使用 Android Studio 或者其他 Gradle 构建的项目如果您使用Gradle构建,只需将以下行添加到文件的 dependencies { //其他依赖 implementation 'com.ds.lhm:easypermissionsactivity:1.0.0'} 使用 EasyPermissionsActivity如果你仅仅是想把所有需要动态申请的权限开启,那么您只需要简单使用 EasyPermissionsActivity 即可。 在AndroidMainifest.xml 文件中加入你的应用程序需要使用到的权限 <?xml version="1.0" encoding="utf-8"?><manifest package="com.lin.example.epa" xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.WRITE_CALL_LOG"/> <application> </application></manifest> 在您需要动态权限申请的 Activity 中,让该 Activity 继承 EasyPermissionsActivity(继承自AppCompatActivity),然后在需要动态权限申请的时刻(如:onCreate()方法中),调用 public class MainActivity extends EasyPermissionsActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //开始请求权限 super.requestPermissions(); }} 你一定关心权限申请成功或者失败的回调方法,很简单,你可以在 EasyPermissionsActivity 的派生类中重写以下方法 @Override protected void onRequestPermissionsBefore() { //权限请求之前,该方法被调用 } /** * 权限请求之后 * * @param success true 成功/ false失败 */ @Override protected void onRequestPermissionsAfter(boolean success) { if (success) { setContentView(R.layout.activity_main); //do something... } else { Toast.makeText(this, "还有权限没有请求到!", Toast.LENGTH_SHORT).show(); //do something... } }
添加权限需求描述在 //添加权限使用描述super.addPermissionGroupDescription(EasyPermissionActivity.STORAGE, "下载书籍,节省流量。");super.addPermissionGroupDescription(EasyPermissionActivity.LOCATION, "获取位置信息,智能推荐。");super.addPermissionGroupDescription(EasyPermissionActivity.PHONE, "检验IMEI码,保证账号安全,防止账号被盗。");//开始请求权限super.requestPermissions(); 修改权限提示名称如果您有更好的权限提示名称,可以在 //修改权限提示名称super.updatePermissionGroupName(EasyPermissionActivity.STORAGE, "文件存储");super.updatePermissionGroupName(EasyPermissionActivity.LOCATION, "位置信息");//开始请求权限super.requestPermissions(); 无限(必须)请求权限,直到所有权限都通过如果你的 App 需要获取所有权限后方可运行,则您可以在 //开启无限请求权限模式isRequestAgain(true);//开始请求权限super.requestPermissions(); Example 完整的代码:public class MainActivity extends EasyPermissionsActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //添加存储权限使用用途描述 super.addPermissionGroupDescription(EasyPermissionActivity.STORAGE, "下载书籍,节省流量。"); super.addPermissionGroupDescription(EasyPermissionActivity.LOCATION, "获取位置信息,智能推荐。"); super.addPermissionGroupDescription(EasyPermissionActivity.PHONE, "检验IMEI码,保证账号安全,防止账号被盗。"); super.updatePermissionGroupName(EasyPermissionActivity.STORAGE, "文件存储"); super.updatePermissionGroupName(EasyPermissionActivity.LOCATION, "位置信息"); //开启无限请求权限模式 isRequestAgain(true); //开始请求权限 super.requestPermissions(); } @Override protected void onRequestPermissionsBefore() { //权限请求之前,该方法被调用 } /** * 权限请求之后 * * @param success true 成功/ false失败 */ @Override protected void onRequestPermissionsAfter(boolean success) { if (success) { setContentView(R.layout.activity_main); //do something... } else { Toast.makeText(this, "还有权限没有请求到!", Toast.LENGTH_SHORT).show(); finish(); } }} 许可证Copyright 2018 Huaming Lin.Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. |
请发表评论