求助大神,RK3288 4.4怎么固定分辨率
在设置里可以固定分辨率啊,具体实现你可以看一下package/apps/Setting代码中的HdmiControllerActivity.java.如果你想第一次开机就默认好分辨率的话,你可以借鉴下我的代码,我的是设置自动获取分辨率的,你改成你对应的就好
[tvbox-442.git] / packages / apps / Provision / src / com / android / provision / DefaultActivity.java
diff --git a/packages/apps/Provision/src/com/android/provision/DefaultActivity.java b/packages/apps/Provision/src/com/android/provision/DefaultActivity.java
index aef1799..5b5e642 100755 (executable)
--- a/packages/apps/Provision/src/com/android/provision/DefaultActivity.java
+++ b/packages/apps/Provision/src/com/android/provision/DefaultActivity.java
@@ -29,15 +29,28 @@ import java.util.List;
import android.content.pm.PackageInfo;
import java.io.File;
import android.util.Log;
+import android.os.DisplayOutputManager;
+import android.os.RemoteException;
/**
* Application that sets the provisioned bit, like SetupWizard does.
*/
+
public class DefaultActivity extends Activity {
+public final static String MODE_HDMI_AUTO = "auto";
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
-
+ DisplayOutputManager mDisplayManagement = null;
+ try {
+ mDisplayManagement = new DisplayOutputManager();
+ } catch(RemoteException e){Log.v("sjf","new displayoutManager error");}
+ if(mDisplayManagement != null)
+ {
+ mDisplayManagement.setMode(mDisplayManagement.MAIN_DISPLAY, mDisplayManagement.DISPLAY_IFACE_HDMI, MODE_HDMI_AUTO);
+ mDisplayManagement.setInterface(mDisplayManagement.MAIN_DISPLAY, mDisplayManagement.DISPLAY_IFACE_HDMI, true);
+ Log.v("sjf","setdisplay");
+ }
// Add a persistent setting to allow other apps to know the device has been provisioned.
Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
Settings.Secure.putInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);
@@ -56,7 +69,6 @@ public class DefaultActivity extends Activity {
ComponentName name = new ComponentName(this, DefaultActivity.class);
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
-
// terminate the activity.
finish();
}
风之空响 发表于 2017-3-14 10:29
在设置里可以固定分辨率啊,具体实现你可以看一下package/apps/Setting代码中的HdmiControllerActivity.jav …
这个没问题,我的也是这么写的,但你有没有发现hdmi拔了再插又变回去了
pcgg0000 发表于 2017-3-14 12:12
这个没问题,我的也是这么写的,但你有没有发现hdmi拔了再插又变回去了
应该是这里,hdmi插入后每次会调这个,改成不管怎样都设成default,只是我自己编译的kernel老是卡在启动画面不动。。
kernel/drivers/rockchip/hdmi/hdmi-lcdc.c
int hdmi_set_lcdc(struct hdmi *hdmi)
{
int rc = 0;
struct rk_screen screen;
// printk("%s vic is %d autoset %d\n", __FUNCTION__, hdmi->vic, hdmi->autoset);
/**by xx
if(hdmi->autoset)
hdmi->vic = hdmi_find_best_mode(hdmi, 0);
else
hdmi->vic = hdmi_find_best_mode(hdmi, hdmi->vic);
// printk("%s selected vic is %d\n", __FUNCTION__, hdmi->vic);
if(hdmi->vic == 0)
hdmi->vic = HDMI_VIDEO_DEFAULT_MODE;
*/
hdmi->vic = HDMI_VIDEO_DEFAULT_MODE;
你看一下这里
--- a/kernel/drivers/video/rockchip/hdmi/rk_hdmi.h
+++ b/kernel/drivers/video/rockchip/hdmi/rk_hdmi.h
@@ -408,7 +408,7 @@ struct hdmi {
#define HDMI_ENABLE_HDCP (HDMI_SYSFS_SRC | 11)
#define HDMI_DEFAULT_SCALE 95
-#define HDMI_AUTO_CONFIG true
+#define HDMI_AUTO_CONFIG false
/* HDMI default vide mode */
#define HDMI_VIDEO_DEFAULT_MODE HDMI_1280x720P_60HZ