pyjnius java抽象类实现

时间:2016-10-18 15:34:00

标签: java bluetooth pyjnius

我正在尝试使用pyjnius实现android.bluetooth.le.ScanCallback这是一个抽象类。我实例化下面给出的python类的那一刻就有一个JVM错误。该错误表明android.bluetooth.le.ScanCallback不是接口类。我相信一个接口是一个抽象类。我错过了什么?

类ScanCallback(PythonJavaClass):

__ javainterfaces__ = ['android / bluetooth / le / ScanCallback']

def __init __(self,scanCallback,batchCallback = None,errorCallback = None):

    super(ScanCallback, self).__init__()
    self.batchCallbk = batchCallback
    self.scanCallbk = scanCallback
    self.errorCallbk = errorCallback
    pass
@java_method ('(L/java/utils/List<ScanResult>/)V')
def onBatchScanResults(self,results): 
    print dir(results)
@java_method ('(I)V')   
def onScanFailed(self, errorCode):
    print "failed to scan" + str(errorCode)
    raise ValueError(str(errorCode))

@java_method ('(IL/android/bluetooth/le/ScanResult)V')
def onScanResult(self, callbackType, result):
    print dir(result)

1 个答案:

答案 0 :(得分:0)

我发现使用PyJNius只能实现接口类(纯抽象类)而不是抽象类。 &#34;机器人/蓝牙/ LE / ScanCallback&#34;是一个抽象类,而不是早期蓝牙API(&lt; 21)的接口类。