修改的一些基礎bug

基於39Go平臺

修改緊急號碼

alps/vendor/mediatek/proprietary/external/EccList/ecc_list.xml

Condition: there are following values:
- 0: ecc only when no sim
- 1: ecc always
- 2: MMI will show ecc but send to nw as normal call

<EccEntry Ecc="112" Category="0" Condition="1" Plmn = "268 01" />
<EccEntry Ecc="112" Category="0" Condition="1" Plmn = "214 01" />
<EccEntry Ecc="119" Category="0" Condition="0" />
<EccEntry Ecc="999" Category="0" Condition="0" />
<EccEntry Ecc="999" Category="0" Condition="1" />

修改voicemail

alps/vendor/mediatek/proprietary/frameworks/base/telephony/etc/voicemail-conf.xml

xml中添加以下客製化

<voicemail numeric="21670" carrier="" vmnumber="170" vmtag="Hangposta" />
<voicemail numeric="26801" carrier="" vmnumber="123" vmtag="Correio de voz" />
<voicemail numeric="21401" carrier="" vmnumber="22177" vmtag="Correo de voz" />

修改時區(基於80Go)

sagereal/mk/VP516E_AH5161W_Walton/ProjectConfig.mk
config_timezone = Asia/Dhaka
默認GMT+06:00 Bangladesh standard time,不是Dhaka Time,需要添加Dhaka地區

alps/external/icu/icu4c/source/data/zone/en.txt
"meta:Bangladesh"{
-            ld{"Bangladesh Summer Time"}
-            lg{"Bangladesh Time"}
-            ls{"Bangladesh Standard Time"}
+            ld{"Dhaka Summer Time"}
+            lg{"Dhaka Time"}
+            ls{"Dhaka Standard Time"}
         }

修改之後編譯生成.dat
M、N、O)無需建立臨時目錄

1.進入到$AOSP/external/icu/icu4c/source/目錄下的

2.在該目錄下執行 ./runConfigureICU Linux命令生成MAKE文件

3.執行make INCLUDE_UNI_CORE_DATA=1

alps/external/icu/icu4c/source/stubdata/icudt58l.dat
alps/vendor/mediatek/proprietary/packages/apps/SettingsLib/res/xml/timezones.xml
+    <timezone id="Asia/Dhaka"></timezone>

滅屏下來藍牙文件屏幕不會被點亮

	alps/vendor/mediatek/proprietary/packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppNotification.java		
import android.os.PowerManager;
......
.......
private void updateIncomingFileConfirmNotification() {
.............................
 PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
            boolean screenOn = pm.isScreenOn();
            if (!screenOn) {
                PowerManager.WakeLock wl = pm.newWakeLock(
                        PowerManager.ACQUIRE_CAUSES_WAKEUP |
                                PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
                wl.acquire(1000);
                wl.release();
            }
}

開啓網絡通知,有可用的網絡時,無提示通知音

alps/frameworks/opt/net/wifi/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java	
import android.net.wifi.ScanResult;
//Redmine 3505 modify for set ringtone on wifi  20191104 begin
import android.net.Uri;
import android.provider.Settings;
import android.app.NotificationManager;
import android.app.NotificationChannel;
//Redmine 3505 modify for set ringtone on wifi  20191104 end
import com.android.internal.R;
import com.android.internal.notification.SystemNotificationChannels;

/**
 * Helper to create notifications for {@link OpenNetworkNotifier}.
 */
public class ConnectToNetworkNotificationBuilder {

    /** Intent when user dismissed the "Connect to Network" notification. */
    public static final String ACTION_USER_DISMISSED_NOTIFICATION =
            "com.android.server.wifi.ConnectToNetworkNotification.USER_DISMISSED_NOTIFICATION";

    /** Intent when user tapped action button to connect to recommended network. */
    public static final String ACTION_CONNECT_TO_NETWORK =
            "com.android.server.wifi.ConnectToNetworkNotification.CONNECT_TO_NETWORK";

    /** Intent when user tapped action button to open Wi-Fi Settings. */
    public static final String ACTION_PICK_WIFI_NETWORK =
            "com.android.server.wifi.ConnectToNetworkNotification.PICK_WIFI_NETWORK";

    /** Intent when user tapped "Failed to connect" notification to open Wi-Fi Settings. */
    public static final String ACTION_PICK_WIFI_NETWORK_AFTER_CONNECT_FAILURE =
            "com.android.server.wifi.ConnectToNetworkNotification.PICK_NETWORK_AFTER_FAILURE";

    private Context mContext;
    private Resources mResources;
    private FrameworkFacade mFrameworkFacade;
    //Redmine 3505 modify for set ringtone on wifi  20191104 begin
    private NotificationManager mNotiManager;
    private Uri mUri;
    //Redmine 3505 modify for set ringtone on wifi  20191104 end
    public ConnectToNetworkNotificationBuilder(
            Context context,
            FrameworkFacade framework) {
        mContext = context;
        mResources = context.getResources();
        mFrameworkFacade = framework;
        //Redmine 3505 modify for set ringtone on wifi  20191104 begin
        mUri = Settings.System.DEFAULT_NOTIFICATION_URI;
        mNotiManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        //Redmine 3505 modify for set ringtone on wifi  20191104 end
    }

    //Redmine 3505 modify for set ringtone on wifi  20191104 begin
    private void createChannel() {
        NotificationChannel mChannel = new NotificationChannel("sagereal_channel_id", "sagereal_channel_name", NotificationManager.IMPORTANCE_DEFAULT);
        mChannel.setDescription("sagereal_channel_description");
        mChannel.setSound(mUri, Notification.AUDIO_ATTRIBUTES_DEFAULT);
        mNotiManager.createNotificationChannel(mChannel);
    }
    //Redmine 3505 modify for set ringtone on wifi  20191104 end
    /**
     * Creates the connect to network notification that alerts users of a recommended connectable
     * network.
     *
     * There are two actions - "Options" link to the Wi-Fi picker activity, and "Connect" prompts
     * the connection to the recommended network.
     *
     * @param network The network to be recommended
     */
    public Notification createConnectToNetworkNotification(ScanResult network) {
        Notification.Action connectAction = new Notification.Action.Builder(
                null /* icon */,
                mResources.getText(R.string.wifi_available_action_connect),
                getPrivateBroadcast(ACTION_CONNECT_TO_NETWORK)).build();
        Notification.Action allNetworksAction = new Notification.Action.Builder(
                null /* icon */,
                mResources.getText(R.string.wifi_available_action_all_networks),
                getPrivateBroadcast(ACTION_PICK_WIFI_NETWORK)).build();
        //Redmine 3505 modify for set ringtone on wifi  20191104 begin
        if (mNotiManager.getNotificationChannel("sagereal_channel_id") == null) {
            createChannel();
        }
				
        return createNotificationBuilder(
                mContext.getText(R.string.wifi_available_title), network.SSID)
                .setContentIntent(
                        getPrivateBroadcast(ACTION_PICK_WIFI_NETWORK))//配置點擊要啓動的intent
                .setAutoCancel(true)//設置爲true,點擊通知欄 ,移除通知
                .addAction(connectAction)
                .addAction(allNetworksAction)
				.setChannelId("sagereal_channel_id")
                .build();
				
    }

接收藍牙沒有提示音

alps/vendor/mediatek/proprietary/packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppIncomingFileConfirmActivity.java
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.os.Vibrator;

protected void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.Theme_Material_Settings_Floating);
        if (V) Log.d(TAG, "onCreate(): action = " + getIntent().getAction());
        super.onCreate(savedInstanceState);

        //Redmine146041  modified for bt received files will ring default notification 2018-8-30 begin
        getRingerMode(this);
        //Redmine146041  modified for bt received files will ring default notification 2018-8-30 end
        .................
}

private Vibrator mVibrator;

    private void getRingerMode(Context context) {
        AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
        int ringerMode = audioManager.getRingerMode();
        if (ringerMode == AudioManager.RINGER_MODE_NORMAL) {
            ringDefaultNotification(context);
        } else if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
            //do nothing
        } else if (ringerMode == AudioManager.RINGER_MODE_VIBRATE) {
            startVibrate(context);
        }
    }

    private void ringDefaultNotification(Context context) {
        Uri defaultNotificationUri = getDefultNotificationUri(context);
        if (defaultNotificationUri != null) {
            MediaPlayer mMediaPlayer = MediaPlayer.create(context, defaultNotificationUri);
            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mMediaPlayer.setLooping(false);
            mMediaPlayer.start();
        }
    }

    private Uri getDefultNotificationUri(Context context) {
        return RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_NOTIFICATION);
    }

    private void startVibrate(Context context) {
        if (mVibrator == null) {
            mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
        }
        long[] pattern = {1000, 1400};
        mVibrator.vibrate(pattern, -1);
    }

    private void stopViberate() {
        if (mVibrator != null) {
            mVibrator.cancel();
        }
    }

email未登錄,label界面發送email異常

如圖所示:
在這裏插入圖片描述沒有設定email賬號時,ComposeActivityEmail這個activity是disable狀態,所以PMS纔會query不到
而當設定email賬號後,ComposeActivityEmail這個activity是enable狀態,所以PMS可以query到
此問題PMS的query是正常的flow,component的enable/disable也是Email那邊現有的design。
源碼:

/39O/alps/vendor/mediatek/proprietary/packages/apps/Email/provider_src/com/android/email/provider/AccountReconciler.java	
 final String composeActivityName =
                context.getString(R.string.reconciliation_compose_activity_name);
        final String composeActivityNameExternal =
                context.getString(R.string.reconciliation_compose_activity_external_name);
        if (!TextUtils.isEmpty(composeActivityName)) {
            // If there are no accounts remaining after reconciliation, disable the compose activity
            final boolean enableCompose = emailProviderAccounts.size() - accountsDeleted > 0;
            final ComponentName componentName = new ComponentName(context, composeActivityName);
            final ComponentName componentExtName = new ComponentName(context, composeActivityNameExternal);
            if ((context.getPackageManager().getComponentEnabledSetting(componentName)
                            == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) && enableCompose)
            {
                context.getPackageManager().setComponentEnabledSetting(componentName,
                        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                        PackageManager.DONT_KILL_APP); /// M: To Fix Composer crash
            }
            context.getPackageManager().setComponentEnabledSetting(componentExtName,
                    enableCompose ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
                            PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                    enableCompose ? PackageManager.DONT_KILL_APP : 0); /// M: To Fix Composer crash
            LogUtils.d(LogUtils.TAG, "Setting compose activity to "
                    + (enableCompose ? "enabled" : "disabled"));
        }

所以修改一下部分:

			alps/vendor/mediatek/proprietary/packages/apps/Email/res/values/strings.xml
 <!-- Redmine3550  modified for email cant open 2019/11/5 begin -->
<string name="reconciliation_compose_activity_name" translatable="false"></string>
    <!--<string name="reconciliation_compose_activity_name" translatable="false">com.android.email.activity.ComposeActivityEmail</string>
    <string name="reconciliation_compose_activity_external_name" translatable="false">com.android.email.activity.ComposeActivityEmailExternal</string>-->
    <string name="reconciliation_compose_activity_external_name" translatable="false"></string>
    <!-- Redmine3550  modified for email cant open 2019/11/5 end -->

[相機]前後攝取景模式爲煙火時,不能拍攝視頻

alps/vendor/mediatek/proprietary/custom/mt6739/hal/sendepfeature/gc030a_mipi_raw/config.ftbl.gc030a_mipi_raw.h 		
                 MtkCameraParameters::SCENE_MODE_SNOW,
                 MtkCameraParameters::SCENE_MODE_SUNSET,
                 MtkCameraParameters::SCENE_MODE_STEADYPHOTO,
-                MtkCameraParameters::SCENE_MODE_FIREWORKS,
+ //               MtkCameraParameters::SCENE_MODE_FIREWORKS,
                 MtkCameraParameters::SCENE_MODE_SPORTS,
                 MtkCameraParameters::SCENE_MODE_PARTY,
                 MtkCameraParameters::SCENE_MODE_CANDLELIGHT,
alps/vendor/mediatek/proprietary/custom/mt6739/hal/sendepfeature/gc2385_mipi_raw/config.ftbl.gc2385_mipi_raw.h 	
                 MtkCameraParameters::SCENE_MODE_SNOW,
                 MtkCameraParameters::SCENE_MODE_SUNSET,
                 MtkCameraParameters::SCENE_MODE_STEADYPHOTO,
-                MtkCameraParameters::SCENE_MODE_FIREWORKS,
+  //              MtkCameraParameters::SCENE_MODE_FIREWORKS,
                 MtkCameraParameters::SCENE_MODE_SPORTS,
                 MtkCameraParameters::SCENE_MODE_PARTY,
                 MtkCameraParameters::SCENE_MODE_CANDLELIGHT,

分享視頻至email失敗

前提條件:手機登錄Email賬戶
操作步驟:視頻播放器–長按某一視頻–分享
實際結果:視頻不在郵件編輯界面

alps/vendor/mediatek/proprietary/packages/apps/Email/src/com/android/email/activity/ComposeActivityEmailExternal.java
private void sanitizeIntent() {
    Intent sanitizedIntent = getIntent();
    if (sanitizedIntent != null) {
      Bundle originalExtras = sanitizedIntent.getExtras();
       if (originalExtras == null) {
            originalExtras = new Bundle();
        }
      //sanitizedIntent.replaceExtras(new Bundle());
      copyStringExtraIfExists(ComposeActivity.EXTRA_SUBJECT, originalExtras, sanitizedIntent);
      copyStringExtraIfExists(ComposeActivity.EXTRA_TO, originalExtras, sanitizedIntent);
      copyStringExtraIfExists(ComposeActivity.EXTRA_CC, originalExtras, sanitizedIntent);
      copyStringExtraIfExists(ComposeActivity.EXTRA_BCC, originalExtras, sanitizedIntent);
      copyStringExtraIfExists(ComposeActivity.EXTRA_BODY, originalExtras, sanitizedIntent);
      setIntent(sanitizedIntent);
    }
  }

持續更新中…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章