怎么在java中建htmi_android 如何在setting中添加HDMI选项

1.如何添加hdmi选项图标

a).将显示在目录上的图标资源添加至/Gingerbread/packages/app/Settings/res/drawable-hdpi/和/Gingerbread/packages/app/Settings/res/drawable-mdpi/中。

b).在Gingerbread/packages/app/Settings/AndroidManifest.xml中添加以下内容

android:label="@string/hdmi_settings"

android:clearTaskOnLaunch="true"

>

c).添加相对应的字串和数组,在Gingerbread/packages/app/Settings/res/values/strings.xml中添加内容

HDMI

Hdmi Display Mode

Please select the display mode you want to use

HDMI Setting

在Gingerbread/packages/app/Settings/res/values/arrays.xml中添加内容

1920x1080

1280x720

720x576

720x480

0

1

2

3

The current mode is 1920x1080 mode

The current mode is 1280x720 mode

The current mode is 720x576 mode

The current mode is 720x480 mode

d).如果对hdmi模块在布局方面有一些特别的要求,可以在res/layout/目录下添加对应的xml文件。

2.HDMI setting格式设计

在/packages/apps/Settings/src/com/android/settings/目录下创建Hdmi_setting.java

采用一个checkbox来设定HDMI的开关,采取一个列表来选择HDMI的参数模式。

在public void onCreate(Bundle icicle) {

super.onCreate(icicle);

}

中添加以下内容,设定HDMI界面的模式风格

ContentResolver resolver = getContentResolver();

WindowManager=IWindowManager.Stub.asInterface(ServiceManager.getService("window"));

addPreferencesFromResource(R.xml.hdmi_setting);

mHdmiAccelerometer = (CheckBoxPreference) findPreference(KEY_HDMI_SWITCH);

mHdmiAccelerometer.setOnPreferenceChangeListener(this);

mHdmiModes = (ListPreference) findPreference(KEY_HDMI_ACCELEROMETER);

mHdmiModes.setOnPreferenceChangeListener(this);

3.如何调用HdmiSettings类

在Gingerbread/packages/app/Settings/res/xml/setting.xml中添加以下内容

settings:icon="@drawable/ic_settings_hdmi"

android:title="@string/hdmi_settings">

android:action="android.intent.action.MAIN"

android:targetPackage="com.android.settings"

android:targetClass="com.android.settings.HdmiSettings" />

4.如何保存当前的控件的值。

a).在franeworks/base/core/java/android/provider/Setting.java中添加两个值的变量的定义

public static final String HDMI_SETTINGS_STATUS = "hdmi_settings_status";

public static final String HDMI_SETTINGS_MODE = "hdmi_settings_mode";

并在SETTINGS_TO_BACKUP数组中添加这两个成员。

b).在Gingerbread/frameworks/base/packages/SettingProvider/src/com/android/providers/settings

/DatabaseHelper.java中添加以下语句

Loadsetting(stmt,settings.system.HDMI_SETTINGS_STATUS,0);

Loadsetting(stmt,settings.system.HDMI_SETTINGS_MODE,0);

5.如何调用hdmi脚本

a).build the hdmi lib

将pp1938的hdmi代码移植,并添加android.mk文件,将该代码编译成一个动态的库,这样就可以在android中采取jni的模式来调用.

b).在Gingerbread/frameworks/base/core/jni中创建一个android_setting_HdmiJNI.cpp并添加以下代码

static int JNICALL android_setting_HdmiJNI_RunHDMI(JNIEnv * env, jobject obj, jint opt)

{

return run_hdmi(opt);

}

static int JNICALL android_setting_HdmiJNI_ChangeHdmiMode(JNIEnv * env, jobject obj, jint opt)

{

LOGE("run hdmi function test \n");

return change_hdmi_mode(opt);

}

static int JNICALL android_setting_HdmiJNI_StopHDMI(JNIEnv * env, jobject obj)

{

LOGE("stop hdmi function test\n");

return stop_hdmi();

}

static int JNICALL android_setting_HdmiJNI_Hot_plug_detect(JNIEnv * env, jobject obj)

{

LOGE("hot plug detect function test\n");

return hot_plug_detect();

}

static JNINativeMethod gMethods[] = {

{"RunHDMI", "(I)I", (void *) android_setting_HdmiJNI_RunHDMI},

{"ChangeHdmiMode", "(I)I", (void *) android_setting_HdmiJNI_ChangeHdmiMode},

{"StopHDMI", "()I", (void *) android_setting_HdmiJNI_StopHDMI},

{"Hot_plug_detect", "()I", (void *) android_setting_HdmiJNI_Hot_plug_detect},

};

int register_android_setting_HdmiJNI(JNIEnv * env)

{

return jniRegisterNativeMethods(env, "android/setting/HdmiJNI",gMethods, NELEM(gMethods));

}

c)在AndroidRuntime.cpp中添加extern int register_android_setting_HdmiJNI(JNIEnv* env);声明,并在数组gRegJNI中添加REG_JNI(register_android_setting_HdmiJNI),

d)修改android.mk文件,并添加相对应的路径包含,

e)在Gingerbread/frameworks/base/core/java/android/setting路径下添加HdmiJNI.java文件

并添加以下代码

package android.setting;

/** {@hide} */

public class HdmiJNI

{

public HdmiJNI()

{

}

public native int RunHDMI(int opt);

public native int ChangeHdmiMode(int opt);

public native int StopHDMI();

public native int Hot_plug_detect();

}

f)在Gingerbread/packages/apps/Settings/src/com/android/settings/HdmiSettings.java中添加

import android.setting.HdmiJNI;

import static android.provider.Settings.System.HDMI_SETTINGS_STATUS;

import static android.provider.Settings.System.HDMI_SETTINGS_MODE;

等并使用对用的函数来执行对应的操作,

注意:若出现无法识别以上的类和变量,请make update-api.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值