2014-02-11 108 views
1

我有我的Android應用程序中運行的意圖的問題。它適用於我的應用程序的調試版本,但在我的發佈版本中不起作用。我錯過了什麼嗎?GET_CONTENT意圖在調試中工作,但沒有發佈版本

這是意圖代碼和活動結果回調。

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode != FILECHOOSER_RESULTCODE) return; 
    if (null == mUploadMessage) return; 
    mUploadMessage.onReceiveValue(intent.getData()); 
    mUploadMessage = null; 
} 

private void pickFile() { 
    Intent chooserIntent = new Intent(Intent.ACTION_GET_CONTENT); 
    chooserIntent.setType("image/*"); 
    startActivityForResult(chooserIntent, FILECHOOSER_RESULTCODE); 
} 

這裏我所說的pickFile功能

echoView.setWebChromeClient(new WebChromeClient() { 

     @SuppressWarnings("unused") 
     public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType, String capture) { 
      this.openFileChooser(uploadMsg); 
     } 

     @SuppressWarnings("unused") 
     public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType) { 
      this.openFileChooser(uploadMsg); 
     } 

     public void openFileChooser(ValueCallback<Uri> uploadMsg) { 
      mUploadMessage = uploadMsg; 
      pickFile(); 
     } 
    } 
+0

'FILECHOOSER_RESULTCODE'的值是什麼?你的'onActivityResult()'是否被調用? 「它不起作用」是什麼意思?你可以說得更詳細點嗎? –

+0

@DavidWasser是的,抱歉沒有更詳細。 'openFileChooser'根本不被調用。 –

回答

1

我發現有兩個問題。其中一個與調試/發佈版本相關,尤其與Android 4.4相關。

調試/發行版本

Proguard的是爲發佈版本啓用,並出現剝離JavaScript接口,由於某種原因與回調openFileChooser干擾。

的是Android 4.4

在KitKit,Android團隊已經刪除了私有API調用openFileChooser當用戶選項卡的input[type=file]元素。我還沒有找到解決方法。在此之前,通過WebView上傳文件似乎不可能在4.4上。

相關問題