Android6.0 MTK 需求文档(七)

本文档详细列举了Android 6.0 MTK平台的特定需求,包括相机连拍声音优化、USSD禁用、权限管理、信号图标显示、漫游4G状态栏图标、空格短信发送、工厂测试模式、SIM卡解锁界面改进、公共解锁指令、IMEI解锁码、闹钟限制、运营商名称调整、五点触摸去除、桌面文件名显示、内置视频配置等多个方面,指导开发者进行系统定制和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:相机连拍声音要比成像速度快

vendor/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/CaptureSound.java)


diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/CaptureSound.java b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/CaptureSound.java
index da3f719..eda174c 100755
--- a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/CaptureSound.java
+++ b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/CaptureSound.java
@@ -73,12 +73,13 @@ public class CaptureSound {
             // force load if user don't call load before play.
             load();
         }
-        mStreamId = mBurstSound.play(mSoundId, 1.0f, 1.0f, 1, -1, 1.0f);
+        mStreamId = mBurstSound.play(mSoundId, 1.0f, 1.0f, 1, -1, 0.5f);
         if (mStreamId == 0) {
             // play failed,load and play again.
             load();
             mUserCount--;
-            mStreamId = mBurstSound.play(mSoundId, 1.0f, 1.0f, 1, -1, 1.0f);
+            mStreamId = mBurstSound.play(mSoundId, 1.0f, 1.0f, 1, -1, 0.5f);
             Log.i(TAG, "[play]done mStreamId = " + mStreamId);
         }
     }


二:禁用USSD

(framworks/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java)

+diff --git a/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java b/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
+index 621aab7..cafaccb 100644
+--- a/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
++++ b/opt/telephony/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
+@@ -765,12 +765,12 @@ public final class GsmMmiCode extends Handler implements MmiCode {
+     static private boolean isShortCodeUSSD(String dialString, GSMPhone phone) {
+         if (dialString != null && dialString.length() <= MAX_LENGTH_SHORT_CODE) {
+             if (phone.isInCall()) {
+-                return true;
++                return false;
+             }
+ 
+             if (dialString.length() != MAX_LENGTH_SHORT_CODE ||
+                     dialString.charAt(0) != '1') {
+-                return true;
++                return false;
+             }
+         }
+         return false;


三:桌面添加联系人小部件,点击拨号,提示需要开启权限

(frameworks/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java

diff --git a/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
index 73418b0..94c94ff 100644
--- a/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
+++ b/base/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java
@@ -259,6 +259,10 @@ final class DefaultPermissionGrantPolicy {
                 syncAdapterPackagesProvider.getPackages(CalendarContract.AUTHORITY, userId) : null;
 
         synchronized (mService.mPackages) {
+             PackageParser.Package launcherPackage = getSystemPackageLPr("com.android.launcher3");
+             if (launcherPackage != null) {
+                 grantRuntimePermissionsLPw(launcherPackage, PHONE_PERMISSIONS, true, userId);
+             }
             // Installer
             PackageParser.Package installerPackage = getSystemPackageLPr(
                     mService.mRequiredInstallerPackage);


四:状态栏显示信号旁的网络标志

(frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java)

         boolean anyMobileVisible = false;
        /// M: Support for [Network Type on Statusbar]
        /// A spacer is set between networktype and WIFI icon @ {

+       if (能进去就是允许显示) {
            anyMobileVisible = true;
+       }
        /// @ }
        int firstMobileTypeId = 0;


         private void setNetworkIcon() {
            // Network type is CTA feature, so non CTA project should not set this.
+           if (不能进去就是允许显示) {
+               return;
+           }
            if (mNetworkIcon == 0) {
                mNetworkType.setVisibility(View.GONE);
            } else {
                mNetworkType.setImageResource(mNetworkIcon);
                mNetworkType.setVisibility(View.VISIBLE);
            }
        }






五:插入漫游4G卡,进入浏览器输入网址正常工作时,状态栏图标需要做成附图显示

(frameworks/)

diff --git a/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java b/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
index 6d666bd..41f04c4 100755
--- a/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
+++ b/base/packages/SystemUI/extcb/com/mediatek/systemui/statusbar/extcb/NetworkType.java
@@ -23,7 +23,7 @@ import static android.telephony.TelephonyManager.NETWORK_TYPE_UNKNOWN;
  */
 public enum NetworkType {
 
-    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5);
+    Type_G(0), Type_3G(1), Type_1X(2), Type_1X3G(3), Type_4G(4), Type_E(5), Type_R(6);
 
     private int mTypeId;
 
diff --git a/base/packages/SystemUI/res/layout/mobile_signal_group.xml b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
index 1882b65..d3be767 100644
--- a/base/packages/SystemUI/res/layout/mobile_signal_group.xml
+++ b/base/packages/SystemUI/res/layout/mobile_signal_group.xml
@@ -39,11 +39,22 @@
         android:alpha="0.0"
         systemui:hasOverlappingRendering="false"
         />
-    <ImageView
-        android:id="@+id/mobile_type"
+    <RelativeLayout
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
-        />
+        >
+        <ImageView
+            android:id="@+id/mobile_r_type"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            />
+        <ImageView
+            android:id="@+id/mobile_type"
+            android:layout_toRightOf ="@id/mobile_r_type"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            />
+    </RelativeLayout>
 <!--
 -->
     <ImageView
diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index f785be8..8b75fa4 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -63,6 +63,7 @@ import java.util.List;
  */
 import com.android.featureoption.FeatureOption;
 // End of Vanzo:tanglei
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 // Intimately tied to the design of res/layout/signal_cluster_view.xml
 public class SignalClusterView
@@ -331,6 +332,12 @@ public class SignalClusterView
         apply();
     }
 
+    public void setRType(NetworkType networkType, int subId) {
+        Log.d(TAG, "setNetworkType(" + subId + "), NetworkType= " + networkType);
+        PhoneState state = getOrInflateState(subId);
+        state.mRType = networkType;
+    }
+
     @Override
     public void setEthernetIndicators(IconState state) {
         mEthernetVisible = state.visible && !mBlockEthernet;
@@ -667,6 +674,8 @@ public class SignalClusterView
         /// Support [SIM Indicator]
         private int mSignalBackgroundIconId;
 
+        private NetworkType mRType;//ROAMING
+        private ImageView mRNetworkType;//ROAMING img
         /// @ }
 /*
  * add signal up and down icon
@@ -705,6 +714,7 @@ public class SignalClusterView
             mMobileDark     = (ImageView) root.findViewById(R.id.mobile_signal_dark);
             mMobileType     = (ImageView) root.findViewById(R.id.mobile_type);
             mNetworkType    = (ImageView) root.findViewById(R.id.network_type);
+            mRNetworkType   = (ImageView) root.findViewById(R.id.mobile_r_type);
             /// M: Add for CT 6M. adjust data and activity icon. @{
             if (FeatureOptionUtils.isMTK_CT6M_SUPPORT()) {
                // add primary sim card
@@ -764,6 +774,16 @@ public class SignalClusterView
                         ad.start();
                     }
                 }
+                if (!mIsAirplaneMode && mRType != null) {
+                    int id = R.drawable.stat_sys_data_fully_connected_roam;
+                    Log.d(TAG, "apply(), mNetworkType= " + mNetworkType + " resId= " + id);
+                    mRNetworkType.setImageResource(id);
+                    mRNetworkType.setVisibility(View.VISIBLE);
+                } else {
+                    mRNetworkType.setImageDrawable(null);
+                    mRNetworkType.setVisibility(View.GONE);
+                }				
+				
                 /// M: Add for CT6M. add activity icon @{
                 if (FeatureOptionUtils.isMTK_CT6M_SUPPORT()) {
                     mMobileDataActivity.setImageResource(
diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
index 32300f2..e811910 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
@@ -28,6 +28,7 @@ import com.mediatek.systemui.statusbar.defaultaccount.DefaultAccountStatus;
 
 import java.util.ArrayList;
 import java.util.List;
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 /**
  * Implements network listeners and forwards the calls along onto other listeners but on
@@ -152,6 +153,19 @@ public class CallbackHandler extends Handler implements EmergencyListener, Signa
     }
 
     @Override
+    public void setRType(final NetworkType networkType, final int subId) {
+        post(new Runnable() {
+            @Override
+            public void run() {
+                for (SignalCallback signalCluster : mSignalCallbacks) {
+                    ///M: Support[Network Type on StatusBar]. Add one more parameter networkIcon.
+                    signalCluster.setRType(networkType, subId);
+                }
+            }
+        });
+    }
+
+    @Override
     public void setSubs(List<SubscriptionInfo> subs) {
         obtainMessage(MSG_SUBS_CHANGED, subs).sendToTarget();
     }
diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index 3c6f366..0c0986e 100644
--- a/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -59,6 +59,7 @@ import java.util.Objects;
  */
 import com.android.featureoption.FeatureOption;
 // End of Vanzo: yucheng
+import com.mediatek.systemui.statusbar.extcb.NetworkType;
 
 
 public class MobileSignalController extends SignalController<
@@ -94,6 +95,7 @@ public class MobileSignalController extends S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值