基于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);
}
}
持续更新中…