2016-06-18 6 views
0

Я создал функцию изображения с несколькими подборщиками из галереи. Работает только отлично. Иногда активность Int-Entity Intent не запускается, она показывает, что «No Activity found to обрабатывать Intent» не удалось мне помочь решить эту ошибку. Но иногда его работы fine.`Активность мультиплеера не запускается в андроиде

btnGalleryPickMul.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(Action.ACTION_MULTIPLE_PICK); 
       startActivityForResult(i, 200); 
      } 
     }); 

    @Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 200 && resultCode == Activity.RESULT_OK) { 
     String[] all_path = data.getStringArrayExtra("all_path"); 

     ArrayList<CustomGallery> dataT = new ArrayList<CustomGallery>(); 


     for (String string : all_path) { 
      CustomGallery item = new CustomGallery(); 
      item.sdcardPath = string; 

      dataT.add(item); 
      // 
      String size=item.sdcardPath; 
      Log.d("size--", size); 
      image1.add(item.sdcardPath); 
      Log.d("map--", String.valueOf(image1)); 


      ArrayList<String> ImgData =image1; 
      Log.d("ImgData--", String.valueOf(ImgData)); 


      for (int i = 0; i < ImgData.size(); i++) { 
       map.add(ImgData.get(i).toString()); 


      } 

     } 

     viewSwitcher.setDisplayedChild(0); 
     adapter.addAll(dataT); 

     new ImageUploadTask() 
       .execute(count + "", "pk" + count + ".jpg"); 
    } 
} 

LogCat error`

FATAL EXCEPTION: main Process: com.airstar.abservetech.airstar, PID: 5646 
                       android.content.ActivityNotFoundException: No Activity found to handle Intent { act=luminous.ACTION_MULTIPLE_PICK } 
                        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1663) 
                        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431) 
                        at android.app.Activity.startActivityForResult(Activity.java:3513) 
                        at android.app.Activity.startActivityForResult(Activity.java:3474) 
                        at com.airstar.abservetech.airstar.Add_room$5.onClick(Add_room.java:296) 
                        at android.view.View.performClick(View.java:4508) 
                        at android.view.View$PerformClick.run(View.java:18675) 
                        at android.os.Handler.handleCallback(Handler.java:733) 
                        at android.os.Handler.dispatchMessage(Handler.java:95) 
                        at android.os.Looper.loop(Looper.java:136) 
                        at android.app.ActivityThread.main(ActivityThread.java:5584) 
                        at java.lang.reflect.Method.invokeNative(Native Method) 
                        at java.lang.reflect.Method.invoke(Method.java:515) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
                        at dalvik.system.NativeStart.main(Native Method) 

`

ответ

0

создать Intent и проверить, если он доступен, или без использования функции ниже

public static boolean isAvailable(Context ctx, Intent intent) { 
    final PackageManager mgr = ctx.getPackageManager(); 
    List<ResolveInfo> list = 
     mgr.queryIntentActivities(intent, 
     PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 

Обновить Ваш код:

btnGalleryPickMul.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(Action.ACTION_MULTIPLE_PICK); 
       if(isAvailable(mContext,i)) 
       startActivityForResult(i, 200); 
      } 
     });