绑定上的远程服务拒绝权限
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 {
// ?
}
}
我希望有人能为我提供一些启示。提前致谢。