2013-10-11 2 views
1

Итак, я отправлял переменные из моих сценариев python в виджет минималистичного текста некоторое время с использованием локального намерения.Передать переменные в виджет Zooper с использованием намерения

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, после того, как связаться с разработчиком, он сказал мне это:

просто отправить Broadcast с «org.zooper. zw.action. TASKERVAR "action, добавьте Bundle к цели как" org.zooper.zw.tasker.var.extra.BUNDLE " с" org.zooper.zw.tasker.var.extra.STRING_VAR "и "org.zooper.zw.tasker.var.extra.STRING_TEXT".

я, к сожалению, имеют лишь ограниченное понимание того, как работает Намерение система, но я попробовал несколько подходов, которые я думал, что может быть это:

import android 

droid = android.Android() 

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

packagename = 'org.zooper.zw' 
classname = 'org.zooper.zw.tasker.var.extra.BUNDLE' 

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

droid.sendBroadcastIntent(intent) 

и

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) 

К сожалению нон этого работает.

ответ

3

Я просто попытался сделать что-то подобное в SDK, и я узнал, что вы должны передать в пакет целое число, ключ - «org.zooper.zw.tasker.var.extra.INT_VERSION_CODE» со значением «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) это не сработало. Я знаю, что это старый вопрос, но я надеюсь помочь.

Смежные вопросы