修改的一些基础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);
    }
  }

持续更新中…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值