今天若米知识就给我们广大朋友来聊聊002341股票如何,以下关于观点希望能帮助到您找到想要的答案。
众业达到底是一家什么样的公司?
答众业达电气股份有限公司是专业工业电气自动化产品服务商,始于1984年,在广东省汕头市成立,是全球著名品牌商最可信赖的合作伙伴之一。2010年在深圳证券交易所上市,成为电气分销行业首家上市公司,股票代码:002441。
公司主营业务为通过自有的销售网络分销签约供应商的工业电气元器件产品,以及进行系统集成产品和成套制造产品的生产和销售。公司多年来坚持多品种、多品牌、差异化的发展战略,产品覆盖低压和中压输配电产品及工业自动化产品。
现属下有55家子公司(其中:54家子公司遍布全国省会及主要城市,1家子公司位于新加坡)、120多个办事处、4个集成制造基地(汕头、上海、北京、嘉兴)和8个物流中心(汕头、北京、上海、广州、成都、郑州、西安、沈阳)及50多个物流配送中转仓。
就是卖电气元配件的龙头分销商吧!
怎样在源代码中修改android系统的屏幕默认
答1、首先解决【设置】界面默认显示【开发者选项】的问题
查看源代码:packages/apps/Settings/src/com/android/settings/SettingsActivity.java
在updateTilesList(List target)方法中,可以找到【开发者选项】相关的代码:
else if (id == R.id.development_settings) { Log.d(LOG_TAG, =================oyp K=+showDev); if (!showDev || um.hasUserRestriction( UserManager.DISALLOW_DEBUGGING_FEATURES)) { removeTile = true; } }
其中showDev变量定义在该方法最开始处
final boolean showDev = mDevelopmentPreferences.getBoolean( DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals(eng));
因此要想特定客户直接显示【开发者选项】,则将showDev的值改变即可,代码如下:
//added by ouyang 2015-11-10 set DevelopmentSettings.PREF_SHOW=true if model is J5if (android.os.SystemProperties.isJ5Version()) { SharedPreferences.Editor editor=mDevelopmentPreferences.edit(); editor.putBoolean(DevelopmentSettings.PREF_SHOW, true); editor.commit(); Log.d(LOG_TAG, =================oyp set DevelopmentSettings.PREF_SHOW=true if model is J5 );}//added by ouyang 2015-11-10 endfinal boolean showDev = mDevelopmentPreferences.getBoolean( DevelopmentSettings.PREF_SHOW, android.os.Build.TYPE.equals(eng));
即在初始化showDev变量之前,将DevelopmentSettings.PREF_SHOW的值设置为true,那么showDev也会是true。这样【开发者选项】就会默认打开。那个判断是J5客户的方法在/frameworks/base/core/java/android/os/SystemProperties.java中定义
public static boolean isJ5Version(){ return SystemProperties.get(ro.product.model).contains(J5);}
2、解决【开发者选项】-->【USB调试】开关
首先查看packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java
在updateAllOptions()方法中,有关于【USB调试】的逻辑处理。
/// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked. boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) true : (Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0); updateSwitchPreference(mEnableAdb, isChecked); /// M: update usb preference again mExt.customUSBPreference(mEnableAdb);
void updateSwitchPreference(SwitchPreference switchPreference, boolean value) { switchPreference.setChecked(value); mHaveDebugSettings |= value;}
其中mEnableAdb即【USB调试】开关控件。一开始我直接强制的把isChecked变量设置为true,如下代码所示
/// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked. boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) true : (Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0);- //added by ouyang 2015-11-10 set mEnableAdb=true if model is J5- if (android.os.SystemProperties.isJ5Version()) {- isChecked=true;- }- //added by ouyang 2015-11-10 end updateSwitchPreference(mEnableAdb, isChecked); /// M: update usb preference again mExt.customUSBPreference(mEnableAdb);
但是这样的话,直接刷机后开机的话还是不能直接连接USB调试,还要重新关闭该开关再打开该开关才能进行USB调试,因此该方案被放弃。
因为是否真正打开【USB调试】功能,是看Settings.Global.ADB_ENABLED这个属性的值是0还是1。因此真正的方法是在一个接受开机广播的广播接收者中将Settings.Global.ADB_ENABLED设置为1。
在下面和【未知来源】一起修改,在第4步骤中解决。
3、解决【安全】-->【未知来源】的开关 默认打开的问题
首先查看packages/apps/Settings/src/com/android/settings/SecuritySettings.java文件,在createPreferenceHierarchy()方法中找到【未知来源】的控件,403行附近
mToggleAppInstallation = (SwitchPreference) findPreference( KEY_TOGGLE_INSTALL_APPLICATIONS); mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());
其中isNonMarketAppsAllowed()方法代码如下
private boolean isNonMarketAppsAllowed() { return Settings.Global.getInt(getContentResolver(), Settings.Global.INSTALL_NON_MARKET_APPS, 0) > 0; }
setNonMarketAppsAllowed(boolean enabled)方法代码如下
private void setNonMarketAppsAllowed(boolean enabled) { final UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE); if (um.hasUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES)) { return; } // Change the system setting Settings.Global.putInt(getContentResolver(), Settings.Global.INSTALL_NON_MARKET_APPS, enabled 1 : 0); }
一开始我在判断isNonMarketAppsAllowed()方法之前,先调用setNonMarketAppsAllowed()方法,这样一进入这个界面的话,【未知来源】选项是被勾选的。
mToggleAppInstallation = (SwitchPreference) findPreference( KEY_TOGGLE_INSTALL_APPLICATIONS);- - //added by ouyang 2015-11-10 setChecked(true) if the model is J5- if (android.os.SystemProperties.isJ5Version()) {- setNonMarketAppsAllowed(true);- } mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());- //added by ouyang 2015-11-10 end
但是,刷完机直接安装一个第三方的apk的话,还是会弹出窗口要我设置【未知来源】选项,如下所示,因此该方案被放弃。
点击【设置】按钮进入到界面是,【未知来源】按钮默认勾选了,这个时候退出去,继续安装apk的话就可以安装了,如下所示:
因为这个添加的代码是在SecuritySettings的createPreferenceHierarchy()方法中,也就是说要进入到该Activity才生效。这样明显没达到目的。
因此要和设置【USB调试】一样,在一个接收开机广播的广播接收者中将Settings.Global.INSTALL_NON_MARKET_APPS设置为1。
4、找Settings里面定义的一个接收开机广播的广播接收者,在AndroidManifest.xml中找到一个,当然你也可以自己定义一个这样的广播接收者。
<!-- Restore Rotation Receiver --> <receiver android:name="com.mediatek.settings.RestoreRotationReceiver"> <intent-filter> </action></action></intent-filter> </receiver>
因此在packages/apps/Settings/src/com/mediatek/settings/RestoreRotationReceiver.java的onReceive(Context context, Intent intent)方法中加入以下代码:
//added by ouyang 2015-11-13if (android.os.SystemProperties.isJ5Version()) { // 开机启动时,默认设置 [未知来源] 勾选 Settings.Global.putInt(context.getContentResolver(), Settings.Global.INSTALL_NON_MARKET_APPS,1); // 开机启动时,默认设置 [USB调试] 勾选 Settings.Global.putInt(context.getContentResolver(),Settings.Global.ADB_ENABLED, 1);}//added by ouyang 2015-11-13 end
而一开始添加的代码可以注释掉了。通过git diff可以看出来
diff --git a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java b/packages/apps/Settings/src/com/android/settings/Develindex 0a987df503270a 100755--- a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java+++ b/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java@@ -508,15 +508,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment final Context context = getActivity(); final ContentResolver cr = context.getContentResolver(); mHaveDebugSettings = false;- /// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked. boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) true : (Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0);- //added by ouyang 2015-11-10 set mEnableAdb=true if model is J5- if (android.os.SystemProperties.isJ5Version()) {- isChecked=true;- }- //added by ouyang 2015-11-10 end updateSwitchPreference(mEnableAdb, isChecked); /// M: update usb preference again mExt.customUSBPreference(mEnableAdb);
diff --git a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java b/packages/apps/Settings/src/com/android/settings/Securityindex 4de173a392e6ee 100755--- a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java+++ b/packages/apps/Settings/src/com/android/settings/SecuritySettings.java@@ -402,14 +402,7 @@ public class SecuritySettings extends SettingsPreferenceFragment root.findPreference(KEY_DEVICE_ADMIN_CATEGORY); mToggleAppInstallation = (SwitchPreference) findPreference( KEY_TOGGLE_INSTALL_APPLICATIONS);- - //added by ouyang 2015-11-10 setChecked(true) if the model is J5- if (android.os.SystemProperties.isJ5Version()) {- setNonMarketAppsAllowed(true);- } mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());- //added by ouyang 2015-11-10 end- // Side loading of apps. // Disable for restricted profiles. For others, check if policy disallows it. mToggleAppInstallation.setEnabled(!um.getUserInfo(UserHandle.myUserId()).isRestricted());
这样改为后,编译,刷机后,插上USB数据线就可以开始进行adb调试了,而且可以直接安装未知来源的apk了。
看完本文,相信你已经对002341股票如何有所了解,并知道如何处理它了。如果之后再遇到类似的事情,不妨试试若米知识推荐的方法去处理。