开机自启动并全屏浏览指定网址的安卓APP开发

单位新添置一台50寸的安卓触屏电脑,需要自己开发一个APP,要实现的功能是:这个APP能跟随机器启动后自动启动,并能全屏显示指定网址的内容。经过几天的研究和调试,终于开发出了这个APP。

一、WebAppActivity.java的代码如下:

package cn.hbwl.webapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;  
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;  
import android.webkit.WebViewClient;

public class WebAppActivity extends Activity {
	private WebView webview; 
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 无title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // 全屏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);       
        //实例化WebView对象  
        webview = new WebView(this);  
        //设置WebView属性,能够执行Javascript脚本  
        webview.getSettings().setJavaScriptEnabled(true);  
        //加载需要显示的网页 
        webview.setWebViewClient(new WebViewClient(){       
            public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                view.loadUrl(url);       
                return true;       
            }
        }); 
        webview.loadUrl("http://www.smsx.org/bigdata/");  
        //设置Web视图  
        setContentView(webview);       
    }
    @Override 
    //设置回退 ,覆盖Activity类的onKeyDown方法  
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {  
            webview.goBack(); //goBack()表示返回WebView的上一页面  
            return true;  
        }
        return false;  
    }    
}

 二、BootBroadcastReceiver.java的代码如下,用于接收广播消息:

package cn.hbwl.webapp;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootBroadcastReceiver extends BroadcastReceiver {
    static final String action_boot="android.intent.action.BOOT_COMPLETED";
 
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(action_boot)){
            Intent ootStartIntent=new Intent(context,WebAppActivity.class);
            ootStartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(ootStartIntent);
        } 
    } 
}

 三、AndroidManifest.xml在代码如下,向系统注册了一个 receiver,子节点 intent-filter 表示接收

android.intent.action.BOOT_COMPLETED 消息。并且还要配置android.permission.RECEIVE_BOOT_COMPLETED权限。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.hbwl.webapp"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="8" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".WebAppActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>        
        <receiver android:name=".BootBroadcastReceiver">  
            <intent-filter>  
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>                     
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>
    </application>
	<uses-permission android:name="android.permission.INTERNET" />
	<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>

完成后,编译出apk包,安装到触屏电脑或手机中。关机,重新开机后,就会自动启动这个APP并全屏显示出指定网址的内容。

相关推荐