Binder通信权限校验

发布时间:2024年01月18日

在 onBind() 方法中验证客户端是否有自定义权限,可以按照以下步骤进行操作:

  1. 按照Android 自定义权限定义自定义权限

  2. 在服务中实现 onBind() 方法,并在方法中检查客户端是否具有自定义权限:

    public class MyService extends Service {
    
        private final IBinder mBinder = new MyBinder();
    
        @Nullable
        @Override
        public IBinder onBind(Intent intent) {
            // 检查客户端是否具有自定义权限
            if (checkCallingOrSelfPermission("com.example.myapp.CUSTOM_PERMISSION")
                    != PackageManager.PERMISSION_GRANTED) {
                return null; // 如果没有权限,则返回 null
            }
            return mBinder;
        }
    
        public class MyBinder extends Binder {
            public MyService getService() {
                return MyService.this;
            }
        }
    }
    

    在 onBind() 方法中使用 checkCallingOrSelfPermission() 方法来检查客户端是否具有 CUSTOM_PERMISSION 自定义权限。如果客户端没有该权限,则返回 null,否则返回服务的 IBinder 对象。

  3. 在客户端的清单文件(AndroidManifest.xml)中定义自定义权限

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.myapp">
    
        <uses-permission android:name="com.example.myapp.CUSTOM_PERMISSION" />
    
        <application
            ...>
            
            <!-- 应用组件声明 -->
    
        </application>
    
    </manifest>
    
文章来源:https://blog.csdn.net/wolf0706/article/details/135674673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。