使用inten将变量传递给Zooper小部件

2024-10-03 11:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我已经使用本地意图将python脚本中的变量发送到minimalistictext小部件。在

This is my code from a previous question:

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)

现在我正在尝试使用Zooper小部件执行相同的操作,在联系开发人员后,他告诉我:

just send a Broadcast with "org.zooper.zw.action. TASKERVAR" action, add a Bundle to the intent as "org.zooper.zw.tasker.var.extra.BUNDLE" with "org.zooper.zw.tasker.var.extra.STRING_VAR" and "org.zooper.zw.tasker.var.extra.STRING_TEXT".

不幸的是,我对意图系统的工作原理了解有限,但我尝试了几种方法,我认为可能是:

^{pr2}$

以及

import android

droid = android.Android()

activity = 'org.zooper.zw.action.TASKERVAR'
extras = {}
extras['org.zooper.zw.tasker.var.extra.BUNDLE'] = {'org.zooper.zw.tasker.var.extra.STRING_VAR':'#TTest#','org.zooper.zw.tasker.var.extra.STRING_TEXT':'Passed'}

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

droid.sendBroadcastIntent(intent)

不幸的是这些都不管用。在


Tags: orgnoneextrasvardeactionactivityextra
1条回答
网友
1楼 · 发布于 2024-10-03 11:15:27

我刚试着在SDK中做一些类似的事情,我发现你也应该在包中传递一个整数,关键是“org.zooper.zw.tasker.var.额外.INT_VERSION“代码”,值为“1”。在

不知道如何在Python中实现这一点,但这是我用Java编写的代码片段(它很有用,我测试过了)

public static final String INTENT_ACTION = "org.zooper.zw.action.TASKERVAR";
public static final String BUNDLE_STRING_NAME =  "org.zooper.zw.tasker.var.extra.STRING_VAR";
public static final String BUNDLE_STRING_VALUE = "org.zooper.zw.tasker.var.extra.STRING_TEXT";
public static final String BUNDLE_VERSION_CODE = "org.zooper.zw.tasker.var.extra.INT_VERSION_CODE";
public static final String BUNDLE_NAME = "org.zooper.zw.tasker.var.extra.BUNDLE";
public static final String VARIABLE_NAME = "test";

public void sendUpdate() {
   Intent in = new Intent(INTENT_ACTION);
   Bundle b = new Bundle();
   String value = "Final variable value";
   b.putInt(BUNDLE_VERSION_CODE, 1);
   b.putString(BUNDLE_STRING_NAME, VARIABLE_NAME);
   b.putString(BUNDLE_STRING_VALUE, value);
   in.putExtra(BUNDLE_NAME, b);
   sendBroadcast(in);
}

这对我有用。没有b.putInt(BUNDLE_VERSION_CODE, 1)它就不能工作了。我知道这是个老问题,但我希望能帮上忙。在

相关问题 更多 >