package com.example.demointerface.manager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import com.example.demointerface.ModeState;
import com.example.demointerface.ModeStateCallback;
import com.example.demointerface.ModeStateController;
public class DemoInterfaceManager {
private static final String TAG = "DemoInterfaceManager";
private static DemoInterfaceManager manager;
private DemoInterfaceConnectCallback demoInterfaceConnectCallback;
private ModeStateController modeStateController;
private DemoInterfaceCallback demoInterfaceCallback;
public static DemoInterfaceManager getInstance() {
if (manager == null) manager = new DemoInterfaceManager();
return manager;
}
private IBinder.DeathRecipient deathRecipient = new IBinder.DeathRecipient() {
@Override
public void binderDied() {
// delay time to reconnect
}
};
public void registerCallback(Context context, DemoInterfaceConnectCallback callback) {
demoInterfaceConnectCallback = callback;
Intent intent = new Intent();
intent.setAction("com.example.demoserver.ModeStateService");
intent.setPackage("com.example.demoserver");
context.bindService(intent, new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
Log.i(TAG, "onServiceConnected: ");
modeStateController = ModeStateController.Stub.asInterface(service);
demoInterfaceConnectCallback.onServiceConnected();
try {
service.linkToDeath(deathRecipient, 0);
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
modeStateController = null;
demoInterfaceConnectCallback.onServiceDisconnected();
}
}, Context.BIND_AUTO_CREATE);
}
public void updateModeState(String typeName, int state) {
try {
modeStateController.updateModeState(typeName, state);
} catch (Exception e) {
e.printStackTrace();
}
}
public int queryModeState(String typeName) {
try {
return modeStateController.queryModeState(typeName);
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
public ModeState getModeState(int index) {
try {
return modeStateController.getModeState(index);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void registerModeStateCallback(DemoInterfaceCallback callback) {
demoInterfaceCallback = callback;
try {
modeStateController.registerModeStateCallback(new ModeStateCallback.Stub() {
@Override
public void notifyStateListChange(int size) throws RemoteException {
Log.i(TAG, "notifySizeChange: " + size);
demoInterfaceCallback.notifyStateListChange(size);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
AIDL Demo:Server 提供 aar 给 Client 使用
共276个文件
xml:148个
webp:30个
bin:20个
需积分: 0 3 下载量 121 浏览量
2023-10-09
15:20:07
上传
评论
收藏 1.87MB ZIP 举报
温馨提示
AIDL Demo:Server 提供 aar 给 Client 使用
资源推荐
资源详情
资源评论
收起资源包目录
AIDL Demo:Server 提供 aar 给 Client 使用 (276个子文件)
demo-interface.aar 85KB
ModeStateController.aidl 556B
ModeStateCallback.aidl 315B
ModeState.aidl 75B
gradlew.bat 3KB
gradlew.bat 3KB
executionHistory.bin 6.34MB
executionHistory.bin 953KB
fileHashes.bin 480KB
jarAnalysis.bin 327KB
classAnalysis.bin 195KB
outputFiles.bin 152KB
classAnalysis.bin 140KB
jarAnalysis.bin 122KB
taskHistory.bin 71KB
fileHashes.bin 68KB
outputFiles.bin 57KB
taskHistory.bin 32KB
sha1-checksums.bin 21KB
resourceHashesCache.bin 19KB
resourceHashesCache.bin 18KB
sha1-checksums.bin 18KB
last-build.bin 1B
last-build.bin 1B
last-build.bin 1B
last-build.bin 1B
.gitignore 225B
.gitignore 225B
.gitignore 47B
.gitignore 47B
.gitignore 6B
.gitignore 6B
.gitignore 6B
build.gradle 1KB
build.gradle 1KB
build.gradle 1KB
build.gradle 945B
build.gradle 945B
settings.gradle 72B
settings.gradle 47B
gradlew 6KB
gradlew 6KB
DemoServer.demointerface.iml 10KB
DemoServer.app.iml 10KB
DemoClient.app.iml 9KB
DemoClient.iml 900B
DemoServer.iml 900B
gradle-wrapper.jar 58KB
gradle-wrapper.jar 58KB
DemoInterfaceManager.java 3KB
ModeManager.java 2KB
ModeStateService.java 2KB
MainActivity.java 2KB
ModeState.java 1KB
ExampleInstrumentedTest.java 764B
ExampleInstrumentedTest.java 758B
ExampleInstrumentedTest.java 758B
ExampleUnitTest.java 386B
ExampleUnitTest.java 383B
ExampleUnitTest.java 383B
MainActivity.java 335B
DemoInterfaceConnectCallback.java 160B
DemoInterfaceCallback.java 129B
buildOutputCleanup.lock 17B
checksums.lock 17B
dependencies-accessors.lock 17B
fileHashes.lock 17B
javaCompile.lock 17B
fileHashes.lock 17B
executionHistory.lock 17B
checksums.lock 17B
dependencies-accessors.lock 17B
buildOutputCleanup.lock 17B
fileHashes.lock 17B
executionHistory.lock 17B
javaCompile.lock 17B
fileHashes.lock 17B
proguard-rules.pro 750B
proguard-rules.pro 750B
proguard-rules.pro 750B
gradle.properties 1KB
gradle.properties 1KB
local.properties 444B
local.properties 444B
gradle-wrapper.properties 232B
gradle-wrapper.properties 232B
cache.properties 51B
cache.properties 51B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
gc.properties 0B
ic_launcher_round.webp 8KB
ic_launcher_round.webp 8KB
共 276 条
- 1
- 2
- 3
资源评论
qq_39608949
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功