Tasker插件变量替换:开发人员

时间:2016-04-27 07:04:50

标签: android automation tasker

我正在为Taker Android应用制作一个插件。该插件基本上允许人们使用自己的设置值动态创建列表和卡片视图。

我认为很高兴也允许使用Tasker变量来设置列表项等。这就是我挣扎的。

这是我在此代码中获得的代码部分(在我的EditActivity中):

resultBundle.putString("MessageString", message);
            resultBundle.putString("ContentString", AlertContents);
            resultBundle.putString("BackgroundColour", BackgroundCol);
            resultBundle.putString("TextColour", TextCol);
            resultBundle.putStringArrayList("myArray", theList);
            resultIntent.putExtras(resultBundle);

            //Take above values and replace any %Variables with the Tassker values in the host

            if ( TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement( this ) )
                TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "MessageString" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "ContentString" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "BackgroundColour" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "TextColour" } );
            TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle, new String [] { "myArray " } );

            resultIntent.putExtras(resultBundle);

实际上,它的作用是将我的值设置为一个包,然后根据我的理解,将setVriableReplaceKeys'函数遍历我在bundle中指定的每个keypai,以用存储在主机中的当前值替换任何taskerr变量(例如%BATT)。下面没有工作,我只看到写出的变量名没有值,所以如果我把%BATT用来测试它,我看到列表中的%BATT而不是实际的电池百分比。

非常感谢任何帮助。我已经玩了很久了。

1 个答案:

答案 0 :(得分:1)

即使已经过了一段时间,也许答案会帮助其他人,比如问题对我有用。

  1. 您的代码存在一些问题。首先,setVariableReplaceKeys需要一个StringArray,所以这就足够了:
  2. if ( TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement( this ) )
      TaskerPlugin.Setting.setVariableReplaceKeys( resultBundle,
      new String [] { "MessageString","ContentString","TextColour","myArray" } );
    }
    
    1. if语句中缺少大括号。
    2. 您正在调用putExtras两次。第一次通话就足够了。
    3. setVariableReplaceKeys会为你的包添加额外的额外内容。如果您正在检查捆绑包是否有效,请记住这一点。