X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/1f0393876d891d0e32a995d0bf7259cc6505afdc..40c6aa7ac2bcf00f42efd43be4c0a06dec1ed0a6:/tools/interfaces/IPlatform.py diff --git a/tools/interfaces/IPlatform.py b/tools/interfaces/IPlatform.py index 9887d13..a5d6d08 100644 --- a/tools/interfaces/IPlatform.py +++ b/tools/interfaces/IPlatform.py @@ -18,7 +18,8 @@ TRANSACTION_getAppName = 8 TRANSACTION_settingsPutString = 9 TRANSACTION_settingsGetString = 10 TRANSACTION_settingsPutInt = 11 -TRANSACTION_getAppName = 12 +TRANSACTION_settingsGetInt = 12 +TRANSACTION_launchIntent = 13 class IPlatform: def __init__(self, remote): @@ -182,6 +183,25 @@ class IPlatform: if exception != 0: logging.error("Failed with code: {}".format(exception)) + def launchIntent(self, arg1, arg2): + request = self.client.new_request() + request.append_string16(arg1) + request.append_string16(arg2) + reply, status = self.client.transact_sync_reply( + TRANSACTION_launchIntent, request) + + if status: + logging.error("Sending reply failed") + else: + reader = reply.init_reader() + status, exception = reader.read_int32() + if exception == 0: + rep1 = reader.read_string16() + return rep1 + else: + logging.error("Failed with code: {}".format(exception)) + return None + def getAppName(self, arg1): request = self.client.new_request() request.append_string16(arg1) @@ -275,7 +295,10 @@ class IPlatform: def get_service(args): helpers.drivers.loadBinderNodes(args) - serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER) + try: + serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER, args.SERVICE_MANAGER_PROTOCOL, args.BINDER_PROTOCOL) + except TypeError: + serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER) tries = 1000 remote, status = serviceManager.get_service_sync(SERVICE_NAME)