Coder Social home page Coder Social logo

mpermissions's Introduction

mpermissions's People

Contributors

hongyangandroid avatar linkaipeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpermissions's Issues

动态生成的类不是抽象的

Error:(6, 8) 错误: XxxActivity$$PermissionProxy不是抽象的, 并且未覆盖PermissionProxy中的抽象方法needShowRationale(int)

public class XxxActivity$$PermissionProxy implements PermissionProxy {
@OverRide
public void grant(XxxActivity source , int requestCode) {
switch(requestCode) {case 1:source.requestSdcardSuccess();break;} }
@OverRide
public void denied(XxxActivity source , int requestCode) {
switch(requestCode) {case 1:source.requestSdcardFailed();break;} }

}

public interface PermissionProxy
{
void grant(T source, int requestCode);

void denied(T source, int requestCode);

void rationale(T source, int requestCode);

boolean needShowRationale(int requestCode);

}

关于requestSuccess回调问题

image
鸿神,这个方法1,会回调两次. 看了下源码
image
image
图中是我的业务处理,这个判断建议可以调整下,不然回调两次不好处理业务层

同时请求多个权限问题?

如果我同时申请CALL_PHONESEND_SMS权限,我CALL_PHONE授权通过,SEND_SMS拒绝通过,在onRequestPermissionsResult(),我想根据授权情况,CALL_PHONE授权通过做一些处理,SEND_SMS授权失败做另外的处理。查看源码发现MPermissions并没有做这种区分,所有权限通过才回调@PermissionGrant修饰的方法,像我上面的那种情况,MPermissions并不支持。

    private static void requestResult(Object obj, int requestCode, String[] permissions,
                                      int[] grantResults)
    {
        List<String> deniedPermissions = new ArrayList<>();
        for (int i = 0; i < grantResults.length; i++)
        {
            if (grantResults[i] != PackageManager.PERMISSION_GRANTED)
            {
                deniedPermissions.add(permissions[i]);
            }
        }
        if (deniedPermissions.size() > 0)
        {
            doExecuteFail(obj, requestCode);
        } else
        {
            doExecuteSuccess(obj, requestCode);
        }
    }

  private static void doExecuteSuccess(Object activity, int requestCode)
    {
        findPermissionProxy(activity).grant(activity, requestCode);

    }

刚开始有权限,可以正常执行.然后去把权限禁掉.可是依然走了授权成功的回调

问题描述:
app刚安装好,点击按钮.检查权限.如果有权限则进入图片连选界面(鸿扬大神的高仿微信那个),这个时候可以读取到图片,然后进app的设置详情权限详情界面,看读写存储的权限都是允许的
然后把读写存储权限都禁止,然后重新打开app,点击按钮.依然能进入图片连选activity,提示暂无外部存储,这是怎么回事啊?按理说不应该走授权失败的那个回调吗?还请大神解惑,不胜感激
机型:zuk z2 ,zui 2.0.079

不能和ButterKnife7.0.1 一起使用

com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/services/javax.annotation.processing.Processor
File1: E:\MJMHCode\building\libs\mpermissions.jar
File2: C:\Users\Administrator.gradle\caches\modules-2\files-2.1\com.jakewharton\butterknife\7.0.1\d5d13ea991eab0252e3710e5df3d6a9d4b21d461\butterknife-7.0.1.jar

导入项目后报错

Gradle 'MPermissions-master' project refresh failed
Error:Cannot access first() element from an empty List

sdk版本升级到了24之后出现授权成功但是还是走 requestFailed的情况

弹出授权窗口,点击同意之后,依然走到失败的回调
在系统应用程序那里看到是成功授权的
手机是索尼Z5 系统版本是6.0.1
请求是在fragment里进行的
请求的代码

if (Build.VERSION.SDK_INT >= 23) {
MPermissions.requestPermissions(About_app.this, 999, Manifest.permission.READ_SMS, Manifest.permission.READ_CONTACTS,Manifest.permission.READ_EXTERNAL_STORAGE);
} else {
smsContent = new SmsContent(new Handler(), getActivity(), binding.bt1);
getActivity().getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, smsContent);
}

smsContent = new SmsContent(new Handler(), getActivity(), binding.bt1);
getActivity().getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, smsContent);

}

@OverRide
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
MPermissions.onRequestPermissionsResult(About_app.this, requestCode, permissions, grantResults);
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} >

@permissiondenied(999)
public void requestSdcardFailed() {
ToastUtil.toast1_center(getActivity(),"请求权限失败");
Log.e("tag", "requestSdcardFailed");
}>

@PermissionGrant(999)
public void requestSdcardSuccess() {
ToastUtil.toast1_center(getActivity(),"请求权限成功");
Log.e("tag", "requestSdcardSuccess");

升级到Android Q之后报反射异常

java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.netease.nim.uikit.permission.MPermission.executeMethodWithParam(MPermission.java:162)
at com.netease.nim.uikit.permission.MPermission.executeMethod(MPermission.java:153)
at com.netease.nim.uikit.permission.MPermission.doExecuteSuccess(MPermission.java:114)

Annotation Processor

关于Annotation Processor部分,表示不怎么看得懂。
大哥指导一下,该咋办呢?
有木有相关的连接?

设置android:allowBackup="false"的时候编译报错了

application中配置android:allowBackup="false"
然后编译的时候报错了:
Error:Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : Attribute application@allowBackup value=(false) from AndroidManifest.xml:27:9-36
is also present at [com.zhy:mpermission-api:1.0.0] AndroidManifest.xml:12:9-35 value=(true).
Suggestion: add 'tools:replace="android:allowBackup"' to element at AndroidManifest.xml:25:5-139:19 to override.

最后我在application 中添加了tools:replace="android:allowBackup"'才解决问题。
你的开源库中是否应该把android:allowBackup的值改为false?

小米手机无法适配相机权限问题

小米自带权限管理,6.0以下需要自己判断做适配,6.0以上,用户拒绝后,无法调用失败后的fail方法,但是成功后可以调用succes方法。小米6.0以下用户拒绝权限后,二次进入就只有一个带确定按钮的提示框,无法二次询问权限,小米走的是自己的适配,各位是怎么解决的?

gradle配置

按照你的gradle配置,无法引用com.zhy.m.permission.MPermissions?

Could not find method classpath() for arguments

Error:(27, 0) Could not find method classpath() for arguments [com.neenbedankt.gradle.plugins:android-apt:1.3] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Caused by: java.lang.RuntimeException: can not find IndexActivity$$PermissionProxy , something when compiler.

下载baseActivity中 报错 请大哥帮忙看看 谢谢

@OverRide
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
MPermissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}

public void Permissions2() {
    MPermissions.requestPermissions(this, READ_PHONE_STATE, Manifest.permission.READ_PHONE_STATE);
}

@PermissionGrant(READ_PHONE_STATE)
public static void requestCallPhoneSuccess() {
    Debug.logDebug("READ_PHONE_STATE成功");
}

@PermissionDenied(READ_PHONE_STATE)
public void requestCallPhoneFailed() {
    Debug.logDebug("READ_PHONE_STATE失败");
}

混淆报错

有没有考虑过混淆之后。我发现找不到相关类,增加如下代码依然有问题

permission-lib,权限混淆

-dontwarn com.zhy.m.permission.**
-keep class com.zhy.m.permission.** { ;}
-keep interface com.zhy.m.permission.
* { *; }
求助解决,急用

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.