开发Android应用程序来使用硬件访问服务

来源:互联网 发布:突破80端口限制 编辑:程序博客网 时间:2024/05/29 04:18

1、开发Android应用程序来使用硬件访问服务

      ~/android-2.3_r1/packages/experimental/Freg

      ----AndroidManifest.java

      ----Android.mk

      ----src

              ----shy/luo/freg

                        ----Freg.java

      ----res

             ----layout

                        ----main.xml

      ----values

            ----string.xml

      ----drawable

            ----icon.png


      Freg.java

package shy.luo.freg;import android.app.Activity;import android.os.ServiceManager;import android.os.Bundle;import android.os.IFregService;import android.os.RemoteException;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class Freg extends Activity implements OnClickListener {private final static String LOG_TAG = "shy.luo.freg.FregActivity";private IFregService fregService = null;private EditText valueText = null;private Button readButton = null;private Button writeButton = null;private Button clearButton = null;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);fregService = IFregService.Stub.asInterface(ServiceManager.getService("freg"));                valueText = (EditText)findViewById(R.id.edit_value);        readButton = (Button)findViewById(R.id.button_read);        writeButton = (Button)findViewById(R.id.button_write);        clearButton = (Button)findViewById(R.id.button_clear);readButton.setOnClickListener(this);writeButton.setOnClickListener(this);clearButton.setOnClickListener(this);                Log.i(LOG_TAG, "Freg Activity Created");    }        @Override    public void onClick(View v) {    if(v.equals(readButton)) {try {    int val = fregService.getVal();    String text = String.valueOf(val);    valueText.setText(text);} catch (RemoteException e) {Log.e(LOG_TAG, "Remote Exception while reading value from freg service.");}    }    else if(v.equals(writeButton)) {try {    String text = valueText.getText().toString();    int val = Integer.parseInt(text);fregService.setVal(val);} catch (RemoteException e) {Log.e(LOG_TAG, "Remote Exception while writing value to freg service.");}    }    else if(v.equals(clearButton)) {    String text = "";    valueText.setText(text);    }    }}


      main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="vertical"     android:gravity="center">    <TextView android:layout_width="wrap_content"       android:layout_height="wrap_content"         android:text="@string/value">    </TextView>    <EditText      android:layout_width="fill_parent"        android:layout_height="wrap_content"         android:id="@+id/edit_value"        android:hint="@string/hint">    </EditText>    </LinearLayout>     <LinearLayout    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:orientation="horizontal"     android:gravity="center">    <Button     android:id="@+id/button_read"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/read">    </Button>    <Button     android:id="@+id/button_write"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/write">    </Button>    <Button     android:id="@+id/button_clear"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/clear">    </Button>    </LinearLayout></LinearLayout>

       strings.xml

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">Freg</string>    <string name="value">Value</string>    <string name="hint">Please input a value...</string>    <string name="read">Read</string>    <string name="write">Write</string>    <string name="clear">Clear</string></resources>

       AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="shy.luo.freg"      android:versionCode="1"      android:versionName="1.0">    <application android:icon="@drawable/icon" android:label="@string/app_name">        <activity android:name=".Freg"                  android:label="@string/app_name">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest> 

       Android.mk

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-subdir-java-files)LOCAL_PACKAGE_NAME := Freginclude $(BUILD_PACKAGE)

2、编译

      编译成apk:

      生成的Freg.apk位于out/target/product/generic/system/app中。


      打包:


      最后把Freg.apk重新打包进入system.img,位于out/target/product/gerneric中。


      运行:



      结果如下:


1 0
原创粉丝点击