uzun süredir bununla uğraşıyorum umarım işinize yarar


PHP Kod:
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class 
MainActivity extends ActionBarActivity {
    private static final 
int INPUT_FILE_REQUEST_CODE 1;
    private static final 
int FILECHOOSER_RESULTCODE 1;
    private static final 
String TAG MainActivity.class.getSimpleName();
    private 
WebView webView;
    private 
WebSettings webSettings;
    private 
ValueCallback<UrimUploadMessage;
    private 
Uri mCapturedImageURI null;
    private 
ValueCallback<Uri[]> mFilePathCallback;
    private 
String mCameraPhotoPath;
    @
Override
    
public void onActivityResult(int requestCodeint resultCodeIntent data) {
        if (
Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            if (
requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) {
                
super.onActivityResult(requestCoderesultCodedata);
                return;
            }
            
Uri[] results null;
            
// Check that the response is a good one
            
if (resultCode == Activity.RESULT_OK) {
                if (
data == null) {
                    
// If there is not data, then we may have taken a photo
                    
if (mCameraPhotoPath != null) {
                        
results = new Uri[]{Uri.parse(mCameraPhotoPath)};
                    }
                } else {
                    
String dataString data.getDataString();
                    if (
dataString != null) {
                        
results = new Uri[]{Uri.parse(dataString)};
                    }
                }
            }
            
mFilePathCallback.onReceiveValue(results);
            
mFilePathCallback null;
        } else if (
Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
            if (
requestCode != FILECHOOSER_RESULTCODE || mUploadMessage == null) {
                
super.onActivityResult(requestCoderesultCodedata);
                return;
            }
            if (
requestCode == FILECHOOSER_RESULTCODE) {
                if (
null == this.mUploadMessage) {
                    return;
                }
                
Uri result null;
                try {
                    if (
resultCode != RESULT_OK) {
                        
result null;
                    } else {
                        
// retrieve from the private variable if the intent is null
                        
result data == null mCapturedImageURI data.getData();
                    }
                } catch (
Exception e) {
                    
Toast.makeText(getApplicationContext(), "activity :" e,
                            
Toast.LENGTH_LONG).show();
                }
                
mUploadMessage.onReceiveValue(result);
                
mUploadMessage null;
            }
        }
        return;
    }
    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
webView = (WebViewfindViewById(R.id.webview);
        
webSettings webView.getSettings();
        
webSettings.setJavaScriptEnabled(true);
        
webSettings.setLoadWithOverviewMode(true);
        
webSettings.setAllowFileAccess(true);
        
webView.setWebViewClient(new Client());
        
webView.setWebChromeClient(new ChromeClient());
        if (
Build.VERSION.SDK_INT >= 19) {
            
webView.setLayerType(View.LAYER_TYPE_HARDWAREnull);
        }
        else if(
Build.VERSION.SDK_INT >=11 && Build.VERSION.SDK_INT 19) {
            
webView.setLayerType(View.LAYER_TYPE_SOFTWAREnull);
        }
        
webView.loadUrl("http://winatom.com"); //change with your website
    
}
    private 
File createImageFile() throws IOException {
        
// Create an image file name
        
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        
String imageFileName "JPEG_" timeStamp "_";
        
File storageDir Environment.getExternalStoragePublicDirectory(
                
Environment.DIRECTORY_PICTURES);
        
File imageFile File.createTempFile(
                
imageFileName,  /* prefix */
                
".jpg",         /* suffix */
                
storageDir      /* directory */
        
);
        return 
imageFile;
    }
    public class 
ChromeClient extends WebChromeClient {
        
// For Android 5.0
        
public boolean onShowFileChooser(WebView viewValueCallback<Uri[]> filePathWebChromeClient.FileChooserParams fileChooserParams) {
            
// Double check that we don't have any existing callbacks
            
if (mFilePathCallback != null) {
                
mFilePathCallback.onReceiveValue(null);
            }
            
mFilePathCallback filePath;
            
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            if (
takePictureIntent.resolveActivity(getPackageManager()) != null) {
                
// Create the File where the photo should go
                
File photoFile null;
                try {
                    
photoFile createImageFile();
                    
takePictureIntent.putExtra("PhotoPath"mCameraPhotoPath);
                } catch (
IOException ex) {
                    
// Error occurred while creating the File
                    
Log.e(TAG"Unable to create Image File"ex);
                }
                
// Continue only if the File was successfully created
                
if (photoFile != null) {
                    
mCameraPhotoPath "file:" photoFile.getAbsolutePath();
                    
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                            
Uri.fromFile(photoFile));
                } else {
                    
takePictureIntent null;
                }
            }
            
Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
            
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE);
            
contentSelectionIntent.setType("image/*");
            
Intent[] intentArray;
            if (
takePictureIntent != null) {
                
intentArray = new Intent[]{takePictureIntent};
            } else {
                
intentArray = new Intent[0];
            }
            
Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
            
chooserIntent.putExtra(Intent.EXTRA_INTENTcontentSelectionIntent);
            
chooserIntent.putExtra(Intent.EXTRA_TITLE"Image Chooser");
            
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTSintentArray);
            
startActivityForResult(chooserIntentINPUT_FILE_REQUEST_CODE);
            return 
true;
        }
        
// openFileChooser for Android 3.0+
        
public void openFileChooser(ValueCallback<UriuploadMsgString acceptType) {
            
mUploadMessage uploadMsg;
            
// Create AndroidExampleFolder at sdcard
            // Create AndroidExampleFolder at sdcard
            
File imageStorageDir = new File(
                    
Environment.getExternalStoragePublicDirectory(
                            
Environment.DIRECTORY_PICTURES)
                    , 
"AndroidExampleFolder");
            if (!
imageStorageDir.exists()) {
                
// Create AndroidExampleFolder at sdcard
                
imageStorageDir.mkdirs();
            }
            
// Create camera captured image file path and name
            
File file = new File(
                    
imageStorageDir File.separator "IMG_"
                            
String.valueOf(System.currentTimeMillis())
                            + 
".jpg");
            
mCapturedImageURI Uri.fromFile(file);
            
// Camera capture image intent
            
final Intent captureIntent = new Intent(
                    
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            
captureIntent.putExtra(MediaStore.EXTRA_OUTPUTmCapturedImageURI);
            
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            
i.addCategory(Intent.CATEGORY_OPENABLE);
            
i.setType("image/*");
            
// Create file chooser intent
            
Intent chooserIntent Intent.createChooser(i"Image Chooser");
            
// Set camera intent to file chooser
            
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS
                    
, new Parcelable[] { captureIntent });
            
// On select image call onActivityResult method of activity
            
startActivityForResult(chooserIntentFILECHOOSER_RESULTCODE);
        }
        
// openFileChooser for Android < 3.0
        
public void openFileChooser(ValueCallback<UriuploadMsg) {
            
openFileChooser(uploadMsg"");
        }
        
//openFileChooser for other Android versions
        
public void openFileChooser(ValueCallback<UriuploadMsg,
                                    
String acceptType,
                                    
String capture) {
            
openFileChooser(uploadMsgacceptType);
        }
    }
    public 
boolean onKeyDown(int keyCodeKeyEvent event) {
        
// Check if the key event was the Back button and if there's history
        
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            
webView.goBack();
            return 
true;
        }
        
// If it wasn't the Back key or there's no web page history, bubble up to the default
        // system behavior (probably exit the activity)
        
return super.onKeyDown(keyCodeevent);
    }
    public class 
Client extends WebViewClient {
        
ProgressDialog progressDialog;
        public 
boolean shouldOverrideUrlLoading(WebView viewString url) {
            
// If url contains mailto link then open Mail Intent
            
if (url.contains("mailto:")) {
                
// Could be cleverer and use a regex
                //Open links in new browser
                
view.getContext().startActivity(
                        new 
Intent(Intent.ACTION_VIEWUri.parse(url)));
                
// Here we can open new activity
                
return true;
            }else {
                
// Stay within this webview and load url
                
view.loadUrl(url);
                return 
true;
            }
        }
        
//Show loader on url load
        
public void onPageStarted(WebView viewString urlBitmap favicon) {
            
// Then show progress  Dialog
            // in standard case YourActivity.this
            
if (progressDialog == null) {
                
progressDialog = new ProgressDialog(MainActivity.this);
                
progressDialog.setMessage("Loading...");
                
progressDialog.show();
            }
        }
        
// Called when all page resources loaded
        
public void onPageFinished(WebView viewString url) {
            try {
                
// Close progressDialog
                
if (progressDialog.isShowing()) {
                    
progressDialog.dismiss();
                    
progressDialog null;
                }
            } catch (
Exception exception) {
                
exception.printStackTrace();
            }
        }
    }

Blackmetal
This Is Halloween