ここにある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 コードです。ジャワ
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' object has no attribute 'LocalBinder' が表示されます