1

У меня есть класс для загрузки изображения на сервер, но я не могу выбрать изображение из gallery.It работает корректно на уровне API +17, но не работает на уровне API -17не onActivityResult называется под уровнем API 17

thoose мои коды

CustomJavascriptClass

public String uploadImage(){ 
    Activity activity = (Activity)context; 
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*");  
    activity.startActivityForResult(photoPickerIntent, 100); 
... 

MainActivity

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 

    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    if(requestCode == 100){ 
     try{ 
      Uri selectedImage = imageReturnedIntent.getData(); 
      String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
      Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
      cursor.moveToFirst(); 
      int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
      String filePath = cursor.getString(columnIndex); 
      cursor.close();    
      Log.i("File", filePath); 
      if (Build.VERSION.SDK_INT >= 17){ 
       HappyJavaScriptInterface.attachment = new File(filePath);  
       HappyJavaScriptInterface.uploadProcess = 1; 
      } 
      else 
      { 
       HappyJavaScriptInterfaceUnder17.attachment = new File(filePath);  
       HappyJavaScriptInterfaceUnder17.uploadProcess = 1; 
      } 
     } 
     catch(Exception ex){ 
      if (Build.VERSION.SDK_INT >= 17){ 
       HappyJavaScriptInterface.uploadProcess = 1; 
      } 
      else 
      { 
       HappyJavaScriptInterfaceUnder17.uploadProcess = 1; 
      } 
     } 
    } 

Он работает правильно на андроид 4.2.2 эмулятор, но не работает на 2.3.3

Благодарности

+0

Проблема заключается в 'onActivityResult' не называется или что? – TheRedFox

+0

yes onActivityResult не вызывается для уровня API -17 – KubixSoftware

+0

Возможно ли, что у вас также есть два способа startActivityForResult()? – Opiatefuchs

ответ

0

Попробуйте установить android:noHistory="false" в манифесте для MainActivity

+0

Я не пытался работать – KubixSoftware

+0

Это зависит от того, установлен ли он. Обычно, если nohistory не указано в манифесте, значение по умолчанию - false. – Opiatefuchs

+0

@Opiatefuchs вы имеете в виду, это ложь, я знаю, но иногда бывает странное поведение, например, несколько раз я не мог экспортировать apk на андроид-студию, потому что флаг 'debuggable' не был установлен в false, но это wasn 't даже установить в true :-) – TheRedFox