Я пытаюсь обернуть Android API, найденный здесь https://github.com/noke-inc/noke-mobile-library-android/blob/c95e45aeba686ec4c5cca932c9b47240d0ebc9cd/README.md
Я думаю, я все понял, прими эту строку
public void onServiceConnected(ComponentName className, IBinder rawBinder) {
//Store reference to service
mNokeService = ((NokeDeviceManagerService.LocalBinder) rawBinder).getService();
И это код API, доступ к которому можно найти здесь https://github.com/noke-inc/noke-mobile-library-android/blob/ddca0be5712cf36132d551af009a1b55a37ca776/nokemobilelibrary/src/main/java/com/noke/nokemobilelibrary/NokeDeviceManagerService.java
public class LocalBinder extends Binder{
public NokeDeviceManagerService getService(){
return NokeDeviceManagerService.this;
}
}
Что я сейчас пытаюсь сделать с pyjnius, так это
NokeDeviceManagerService = autoclass('com.noke.nokemobilelibrary.NokeDeviceManagerService')
NokeDevice = autoclass('com.noke.nokemobilelibrary.NokeDevice')
NokeMobileError = autoclass('com.noke.nokemobilelibrary.NokeMobileError')
NokeServiceListener =autoclass('com.noke.nokemobilelibrary.NokeServiceListener')
class ServiceConnection(PythonJavaClass):
__javainterfaces__ = ('android.content.ServiceConnection')
__javacontext__ = 'app'
@java_method('(Landroid/content/ComponentName;Landroid/os/IBinder;)V')
def onServiceConnected(className, rawBinder):
nokeDeviceManagerService = NokeDeviceManagerService()
nokeService = cast(nokeDeviceManagerService.LocalBinder,rawBinder)
mNokeService = nokeService.getService()
#mNokeService = ((NokeDeviceManagerService.LocalBinder)rawBinder).getService()
mNokeServiceListener = NokeServiceListener()
mNokeService.registerNokeListener(mNokeServiceListener)
mNokeService.startScanningForNokeDevices()
Я немного растерялся, что делать на этом шаге. Там не так много примеров для связывания услуг вместе.
Внутри класса NokeDeviceManagerService есть это
public class NokeDeviceManagerService extends Service {
.
.
.
/**
* Class for binding service to activity
*/
public class LocalBinder extends Binder{
public NokeDeviceManagerService getService(){
return NokeDeviceManagerService.this;
}
}
И я получаю сообщение об ошибке AttributeError: объект 'com.noke.nokemobilelibrary.NokeDeviceManagerServic' не имеет атрибута 'LocalBinder'