2017-11-05 6 views
0

많은 질문이 있지만 내 상황에 맞는 예제를 찾을 수 없습니다. 내 앱에 Tasker 플러그인을 추가하려고합니다. 그것은 작동하지만 변수 값은 전달되지 않습니다. 대신 변수 이름 만 % BATT처럼 전달됩니다. http://tasker.dinglisch.net/plugins.html작업자 액션 플러그인 변수 교체

그것이 내가 내 EditActivity에 다음 줄을 추가 할 필요가 있다고 말한다 :

나는 여기 읽어

if (TaskerPlugin.Setting.hostSupportsOnFireVariableReplacement(this)) 
       TaskerPlugin.Setting.setVariableReplaceKeys(resultBundle, new String [] { "com.saple.plugin.MYVALUE" }); 

하지만 난 곳이 라인을 넣어 찾을 수 없습니다.

package com.test.app; 

import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.EditText; 

import com.aktuna.gear.defilmirz.R; 
import com.aktuna.gear.defilmirz.bundle.BundleScrubber; 
import com.aktuna.gear.defilmirz.bundle.PluginBundleManager; 

//import com.twofortyfouram.locale.Intent; 

/** 
* This is the "Edit" activity for a Locale Plug-in. 
* <p> 
* This Activity can be started in one of two states: 
* <ul> 
* <li>New plug-in instance: The Activity's Intent will not contain 
* {@link com.twofortyfouram.locale.Intent#EXTRA_BUNDLE}.</li> 
* <li>Old plug-in instance: The Activity's Intent will contain 
* {@link com.twofortyfouram.locale.Intent#EXTRA_BUNDLE} from a previously saved plug-in instance that the 
* user is editing.</li> 
* </ul> 
* 
* @see com.twofortyfouram.locale.Intent#ACTION_EDIT_SETTING 
* @see com.twofortyfouram.locale.Intent#EXTRA_BUNDLE 
*/ 
public final class EditActivity extends AbstractPluginActivity 
{ 

    @Override 
    protected void onCreate(final Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     BundleScrubber.scrub(getIntent()); 

     final Bundle localeBundle = getIntent().getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE); 
     BundleScrubber.scrub(localeBundle); 

     setContentView(R.layout.main); 

     if (null == savedInstanceState) 
     { 
      if (PluginBundleManager.isBundleValid(localeBundle)) 
      { 
       final String message = 
         localeBundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE); 
       ((EditText) findViewById(android.R.id.text1)).setText(message); 
      } 
     } 
    } 

    @Override 
    public void finish() 
    { 
     if (!isCanceled()) 
     { 
      final String message = ((EditText) findViewById(android.R.id.text1)).getText().toString(); 

      if (message.length() > 0) 
      { 
       final Intent resultIntent = new Intent(); 

       /* 
       * This extra is the data to ourselves: either for the Activity or the BroadcastReceiver. Note 
       * that anything placed in this Bundle must be available to Locale's class loader. So storing 
       * String, int, and other standard objects will work just fine. Parcelable objects are not 
       * acceptable, unless they also implement Serializable. Serializable objects must be standard 
       * Android platform objects (A Serializable class private to this plug-in's APK cannot be 
       * stored in the Bundle, as Locale's classloader will not recognize it). 
       */ 
       final Bundle resultBundle = 
         PluginBundleManager.generateBundle(getApplicationContext(), message); 
       resultIntent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE, resultBundle); 

       /* 
       * The blurb is concise status text to be displayed in the host's UI. 
       */ 
       final String blurb = generateBlurb(getApplicationContext(), message); 
       resultIntent.putExtra(com.twofortyfouram.locale.Intent.EXTRA_STRING_BLURB, blurb); 

       setResult(RESULT_OK, resultIntent); 
      } 
     } 

     super.finish(); 
    } 

    /** 
    * @param context Application context. 
    * @param message The toast message to be displayed by the plug-in. Cannot be null. 
    * @return A blurb for the plug-in. 
    */ 
    /* package */static String generateBlurb(final Context context, final String message) 
    { 
     final int maxBlurbLength = 
       context.getResources().getInteger(R.integer.twofortyfouram_locale_maximum_blurb_length); 

     if (message.length() > maxBlurbLength) 
     { 
      return message.substring(0, maxBlurbLength); 
     } 

     return message; 
    } 
} 

사람이 무엇을 말해 줄 수 있다면 나는 감사하겠습니다이 ...

답변

0

내가 그것을 발견 : 다음은 내 editactivity 클래스입니다. generateBundle 함수가 PluginBundleManager.generateBundle 에 있었고 추가 작업이 필요했습니다. result.putString ("net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS", BUNDLE_EXTRA_STRING_MESSAGE);