2016-04-06 15 views
0

Tasker uygulaması için Android eklentileri oluşturmaya başladım. 'Tost' örneğini indirerek başladım ve belgeleri oku. Ben hala örnekle oynuyoruz, ama ben tost eylemi yorumlamak ve bir Alert Dialog oluşturmak için kod ile değiştirdiğinizde (ki bu sayısız diğer uygulamalarda yaptım), Tasker'da denediğimde tasker eklentisi her zaman çöküyor . Android Studio kullanıyorum.FireReceiver yardımı Android Tasker Plugin'de

Neden olduğunu bilen var mı? Benim kodum:

public class FireReceiver extends BroadcastReceiver 
    { 

     /** 
     * @param context {@inheritDoc}. 
     * @param intent the incoming {@link com.twofortyfouram.locale.Intent#ACTION_FIRE_SETTING} Intent. This 
     *   should contain the {@link com.twofortyfouram.locale.Intent#EXTRA_BUNDLE} that was saved by 
     *   {@link EditActivity} and later broadcast by Locale. 
     */ 
     @Override 
     public void onReceive(final Context context, final Intent intent) 
     { 
    /* 
    * Always be strict on input parameters! A malicious third-party app could send a malformed Intent. 
    */ 

      if (!com.twofortyfouram.locale.Intent.ACTION_FIRE_SETTING.equals(intent.getAction())) 
      { 
       if (Constants.IS_LOGGABLE) 
       { 
        Log.e(Constants.LOG_TAG, 
          String.format(Locale.US, "Received unexpected Intent action %s", intent.getAction())); //$NON-NLS-1$ 
       } 
       return; 
      } 
    BundleScrubber.scrub(intent); 

    final Bundle bundle = intent.getBundleExtra(com.twofortyfouram.locale.Intent.EXTRA_BUNDLE); 
    BundleScrubber.scrub(bundle); 

    if (PluginBundleManager.isBundleValid(bundle)) 
    { 
     final String message = bundle.getString(PluginBundleManager.BUNDLE_EXTRA_STRING_MESSAGE); 
     //Toast.makeText(context, message, Toast.LENGTH_LONG).show(); 

     AlertDialog.Builder builder = new AlertDialog.Builder(context); 

     builder.setMessage("Yes, this worked!") 
       .setIcon(R.drawable.ic_launcher) 
       .setTitle(R.string.dialog_title); 

     builder.setPositiveButton(R.string.dialog_yes, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       // User clicked OK button 
       //Toast.makeText(context, "You clicked yes", Toast.LENGTH_LONG).show(); 
      } 
     }); 
     builder.setNegativeButton(R.string.dialog_no, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       // User cancelled the dialog 
       //Toast.makeText(getApplicationContext(), "You clicked no", Toast.LENGTH_LONG).show(); 
      } 
     }); 


     AlertDialog dialog = builder.create(); 
     dialog.show(); 

    } 

} 

cevap

0

Bu noktaya gelebilecek herkes için sorunu en sonunda çözdüm. Temel olarak FireReceiver, Alerts vb. Gibi şeyleri gösterme yeteneğine sahip değildir. Bu nedenle, FireReceiver'ı esasen başka bir etkinliği açmak için kullanmanız gerekir.

Bu benim için çalışıyor (Paket adını değiştirdim ama siz de bunu elde edersiniz). NewActiviy, FireReciever'in açılmasını istediğiniz faaliyet ne olursa olsun. Daha sonra değişken standartlarını geçerek kodum için kodumu gösterir, ki bu oldukça standarttır:

Intent openNext = new Intent(); 
     openNext.setClassName("com.yourcompany.yoursetting", "com.yourcompany.blahblah.receiver.NewActivity"); 

     openNext.putExtra("AlertTitle", message); 
     openNext.putExtra("AlertContentsString", AlertContents); 
      openNext.putExtra("BackColour", BackgroundC); 
      openNext.putExtra("TextColour", TitleC); 

      openNext.putStringArrayListExtra("ShowArray", arr); 

     openNext.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(openNext);