绑定上的远程服务拒绝权限
2022-09-03 02:53:35
						我有一个远程服务,外部应用程序可以绑定到该服务。在某些情况下,我可能希望拒绝绑定。根据文件,
将通信通道返回到服务。如果客户端无法绑定到服务,则可能返回 null。
@Override
public IBinder onBind(final Intent intent) {
    return null;
}
返回 null 确实不会返回 IBinder 对象,因此会阻止连接,但是调用应用程序无法正确接收此“信息”。
boolean bound = context.bindService(intent, serviceConnection, flagsHere);
无论是否从服务返回 null,这总是返回 true?
根据文件,
返回 - 如果已成功绑定到服务,则返回 true;如果未建立连接,则返回 false,因此您将不会收到服务对象
我假设从 onBind 返回 null 会导致 bindService 返回 false。假设从来都不是一个好主意...
但是,返回 null 确实会阻止实例化调用 ServiceConnection,但这样做的后果是没有选项来检查绑定程序在 onServiceConnected 中是否确实为 null。
那么,我的问题 - 应用程序如何“知道”绑定请求是否被拒绝?
此外,如果我在飞行中决定应该拒绝对onRebind的请求(之前从onUnbind返回true),我似乎无法覆盖该行为以防止这种情况:
@Override
public void onRebind(final Intent intent) {
    if (shouldAllowRebind(intent)) {
        super.onRebind(intent);
    } else {
        // ?
    }
}
我希望有人能为我提供一些启示。提前致谢。
 
					 
				 
				    		 
				    		 
				    		 
				    		