So I have an Android WebView that is designed to navigate m.facebook.com and I am having trouble getting image uploads working. When I click on the upload image button (on facebook in my WebView) nothing happens.
The button I am pressing on the m.facebook.com website is this one:

I have defined my WebChromeClient as follows:
_webview.setWebChromeClient(new WebChromeClient() {  
    public void openFileChooser( ValueCallback<Uri> uploadMsg, String acceptType ) {  
        // BREAKPOINT HERE
        mUploadMessage = uploadMsg;  
        Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
        i.addCategory(Intent.CATEGORY_OPENABLE);  
        i.setType("image/*");  
        MainActivity.this.startActivityForResult( Intent.createChooser( i, "" ), MainActivity.FILECHOOSER_RESULTCODE ); 
    }
    // For Android < 3.0
    public void openFileChooser( ValueCallback<Uri> uploadMsg ) {
      openFileChooser( uploadMsg, "" );
    }  
    // For Android > 4.1
    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
      openFileChooser( uploadMsg, "" );
    }
});
Which I took from Chirag's answer from this previous stack overflow post: Android WebView File Upload
I placed a breakpoint where my "// BREAKPOINT HERE" comment is, and it is never hit, even after pressing the upload photo button on m.facebook.com. I have the READ_EXTERNAL_STORAGE permission set. My minimum api version is 9 and my target is 21.
I also have set a WebViewClient which I define as follows:
private class MyWebViewClient extends WebViewClient {
    Activity activity;
    public MyWebViewClient(Activity myActivity){
        activity = myActivity;
    }
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        // This function is never called when I click the upload photo
        // button.
        // ... Do Stuff
    }
    public void onLoadResource(WebView view, String url){
        // The following if statement's predicate returns false if the 
        // upload image button is pressed, so it's contents are of no consequence
        if(url.startsWith(LINK_STRING)){
            // ...
        }
    }
}
For completeness I have included a portion of my manifest:
<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version"/>
    <activity android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:alwaysRetainTaskState="true"/> <!-- Remove this if this doesn't correct the crashing issue -->
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
My question is this: How can I allow the WebView component upload images from the gallery and camera?
Thank you so much for any help you can offer!
 
     
    