1

我一直在尝试使用 sendBroadcastIntent 将变量数据直接从 SL4A 发送到 Minimalistic Text Widget,就像我如何将变量发送到 Tasker 一样(使用我在 SL4A google 组中找到的代码)

不幸的是,我对意图的理解有点松懈,我发现找到专门与 SL4A 相关的教程几乎是不可能的。

SL4A makeintent API 参考

简约的测试意图示例

我尝试使用的代码:

import Android
droid = Android()

activity = "com.twofortyfouram.locale.intent.action.FIRE_SETTING"
extras = {'de.devmil.minimaltext.locale.extras.VAR_NAME': "Test"; "de.devmil.minimaltext.locale.extras.VAR_TEXT" : "Passed"}
packagename = 'de.devmil.minimaltext'
classname = 'de.devmil.minimaltext.locale.LocaleFireReceiver'
intent = droid.makeIntent(activity, None, None, extras, None, packagename, classname).result
droid.sendBroadcastIntent(intent)
4

2 回答 2

2

您的原始代码不起作用的原因是因为您在创建名为 extras 的字典时使用;而不是,拆分名称/值对。

错误道:

extras = {'de.devmil.minimaltext.locale.extras.VAR_NAME':"Test" ; "de.devmil.minimaltext.locale.extras.VAR_TEXT" : "Passed"}

正确方法:

extras = {'de.devmil.minimaltext.locale.extras.VAR_NAME':"Test" , 'de.devmil.minimaltext.locale.extras.VAR_TEXT' : "Passed"}

您可以在此处了解有关使用字典的更多信息:http ://www.tutorialspoint.com/python/python_dictionary.htm

于 2014-10-03T11:09:38.990 回答
1

我终于让它工作了!从这个 Stackoverflow 答案

import android

droid = android.Android()

activity = 'com.twofortyfouram.locale.intent.action.FIRE_SETTING'
extras = {}
extras['de.devmil.minimaltext.locale.extras.VAR_NAME'] = 'test'
extras['de.devmil.minimaltext.locale.extras.VAR_TEXT'] = 'Passed'

packagename =  'de.devmil.minimaltext'
classname = 'de.devmil.minimaltext.locale.LocaleFireReceiver'

intent = droid.makeIntent(activity, None, None, extras, None, packagename, classname).result

droid.sendBroadcastIntent(intent)

也就是说,我不确定我的初始代码哪里出错了。如果有人愿意插话并指出我到底哪里出错了

于 2013-09-11T00:01:44.057 回答