Во-первых, вот мой код.
Class<?> ContextImplClass = Class.forName("android.app.ContextImpl");
// private final LoadedApk mPackageInfo
Field mPackageInfoField = ContextImplClass.getDeclaredField("mPackageInfo");
mPackageInfoField.setAccessible(true);
Object mPackageInfo = mPackageInfoField.get(currentActivity.getBaseContext());
Class loadedApkClass = mPackageInfoField.getType();
Field mServicesField = loadedApkClass.getDeclaredField("mServices");
mServicesField.setAccessible(true);
// Object -> LoadedApk.ServiceDispatcher
ArrayMap<Context, ArrayMap<ServiceConnection, Object>> mServices = null;
if (android.os.Build.VERSION.SDK_INT >= 19) {
mServices = (ArrayMap<Context, ArrayMap<ServiceConnection, Object>>)
mServicesField.get(mPackageInfo);
}
if (mServices == null)
return;
for (Context context : mServices.keySet()) {
for (ServiceConnection conn : mServices.get(context).keySet()) {
// Maybe JNIBridge
if (conn.toString().contains("<native proxy object>")) {
currentActivity.unbindService(conn);
// Can't not start
boolean wasStart = currentActivity.bindService(getIntent(), conn, BIND_AUTO_CREATE);
}
}
}
Я не знаю ServiceConnectionImpl
.
Я думаю, JNIBridge
.
, потому что я могу найти имя, где Proxy.cpp
в JNIBridge
.
conn.toString()): < native proxy object \>
conn.getClass().getSimpleName().trim()) -> $Proxy0
Как я могу решить это?