Vista web de Android, cargando el archivo javascript en la carpeta de activos

He visto que esta pregunta se ha hecho muchas veces, pero todavía no puedo lograr que mi código funcione.

Quiero mi webview para cargar alguna URL (por ejemplo, www.google.com) y luego aplicar algunos javascript almacenados enassets/jstest.js, que contiene lo siguiente:

function test(){
document.bgColor="#00FF00"; //turns to green the background color
}

Y aquí es donde trato de cargar el JS:

@Override  
public void onPageFinished(WebView view, String url){
    view.loadUrl("javascript:(function() { "
                + " document.bgColor='#FF0000';" //turns to red the background color
                + " var script=document.createElement('script'); "
                + " script.setAttribute('type','text/javascript'); "
                + " script.setAttribute('src', 'file:///android_asset/jstest.js'); "
                + " script.onload = function(){ "
                + "     test(); "
                + " }; "
                + " document.getElementsByTagName('head')[0].appendChild(script); "
                + "})()"); 
} 

Sé que JavaScript funciona aquí porque el color de fondo en realidad se vuelve rojo, pero por alguna razón no se cargarájstest.js. Creo que el problema podría estar en la ruta del archivo (estoy seguro de que todas las líneas del código de JavaScript son correctas), pero me parece correcto. Y el archivo está en la carpeta correcta.

¿Qué me estoy perdiendo

EDITA:

Ya queWebResourceResponse class está disponible solo con API Nivel 11, esto es lo que descubrí al final.

public void onPageFinished(WebView view, String url){
        String jscontent = "";
        try{
            InputStream is = am.open("jstest.js"); //am = Activity.getAssets()
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);

            String line;
            while (( line = br.readLine()) != null) {
                jscontent += line;
            }
            is.close(); 
        }
        catch(Exception e){}
        view.loadUrl("javascript:(" + jscontent + ")()"); 
    } 

con eljstest.js simplemente contiene:

function() {
    document.bgColor="#00FF00";
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta