2013-07-05 64 views
0

我想上传一个webview文件。当我点击选择按钮为3.0以上的Android版本的设备不在选择器中显示录音机选项。 这里是我的代码android openfilechooser不显示Android版3.0以下的录音笔

public void openFileChooser(ValueCallback<Uri> uploadMsg) { 

     String path = Environment.getExternalStorageDirectory().toString(); 
     File file = new File(path, "temp.jpg"); 
     file.delete(); 
     mUploadMessage = uploadMsg; 
     Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
     i.addCategory(Intent.CATEGORY_OPENABLE); 
     i.setType("*/*"); 
     Intent openInChooser=Intent.createChooser(i,"File Chooser"); 
     Intent value[]=new Intent[2]; 
     value[0]= new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

     value[0].addCategory(Intent.CATEGORY_OPENABLE); 

     Intent fileExplorer= new Intent(MainActivity.this,DirectoryBrowser.class); 
     fileExplorer.setComponent(new ComponentName(MainActivity.this, DirectoryBrowser.class)); 
     value[1] = new LabeledIntent(fileExplorer, "com.app.insta7", "File Explorer", R.drawable.folder); 
     openInChooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, value); 
     MainActivity.this.startActivityForResult(openInChooser, FILECHOOSER_RESULTCODE); 
    } 

,如果我这条线,增加意图数组大小增加3

​​

的设备版本低于3.0选配的显示选项twice.kindly建议的解决方案,如果你这个问题有什么。

回答

0

这个令人讨厌的无证函数已经改变了几次原型。当我们想要支持文件上传时,我们使用此代码:

// For Android 4.1+ 
public void openFileChooser(ValueCallback<Uri> uploadFileCallback, String acceptType, String capture) { 
    Log.i(TAG, "Opening file chooser for type '" + acceptType + "', capture '" + capture + "'"); 
    // Add your file picker code here! 
} 

// For Android 3.0+ 
public void openFileChooser(ValueCallback<Uri> uploadFileCallback, String acceptType) { 
    Log.i(TAG, "Opening legacy file chooser for type '" + acceptType + "'"); 
    openFileChooser(uploadFileCallback, acceptType, ""); 
} 

// For Android < 3.0 
public void openFileChooser(ValueCallback<Uri> uploadFileCallback) { 
    Log.i(TAG, "Opening very legacy file chooser"); 
    openFileChooser(uploadFileCallback, ""); 
} 
相关问题