Android 系统(191)---ODM 开发用户常见需求文档(九)

阅读数:1122

一:去除摄像头的假对焦框

(vendor/)

(mediatek/proprietary/packages/apps/Camera/src/com/android/camera/FocusManager.java)

[java] view plaincopy
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. +import com.android.camera.ui.FocusIndicatorRotateLayout.Listener;
  4. /**
  5. * A class that handles everything about focus in still picture mode. This also handles the metering
  6. @@ -56,7 +57,7 @@ import java.util.List;
  7. * Touch the screen to change metering area.
  8. */
  9. public class FocusManager implements CameraActivity.OnOrientationListener,
  10. -        CameraActivity.OnParametersReadyListener {
  11. +        CameraActivity.OnParametersReadyListener,FocusIndicatorRotateLayout.Listener {
  12. private static final String TAG = "FocusManager";
  13. private static final int RESET_TOUCH_FOCUS = 0;
  14. @@ -86,6 +87,11 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  15. private Matrix mMatrix;
  16. private Matrix mObjextMatrix;
  17. +    private boolean mNeedPlaySound = false;
  18. // The parent layout that includes only the focus indicator.
  19. private FocusIndicatorRotateLayout mFocusIndicatorRotateLayout;
  20. // The focus indicator view that holds the image resource.
  21. @@ -228,6 +234,14 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  22. mParameters = parameters;
  23. mFocusAreaSupported = (mParameters.getMaxNumFocusAreas() > 0 && isSupported(
  24. Parameters.FOCUS_MODE_AUTO, mParameters.getSupportedFocusModes()));
  25. +        if (mFocusIndicatorRotateLayout != null) {
  26. +            mFocusIndicatorRotateLayout.mCustomFocusSupported = mFocusAreaSupported;
  27. +            mFocusIndicatorRotateLayout.setCustomListener(this);
  28. +        }
  29. // mLockAeAwbNeeded = (mInitialParameters.isAutoExposureLockSupported()
  30. // ||
  31. // mInitialParameters.isAutoWhiteBalanceLockSupported());
  32. @@ -427,9 +441,23 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  33. }
  34. mListener.setFocusParameters();
  35. if (moving) {
  36. +            if (!mFocusAreaSupported) {
  37. +                Log.e("vanzo","mNeedPlaySound-->false");
  38. +                mNeedPlaySound = false;
  39. +            }
  40. mFocusIndicatorRotateLayout.showStart();
  41. } else {
  42. +/*
  43. mFocusIndicatorRotateLayout.showSuccess(true);
  44. + */
  45. +            if (mFocusAreaSupported)
  46. +                mFocusIndicatorRotateLayout.showSuccess(true);
  47. }
  48. }
  49. @@ -453,7 +481,11 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  50. // Check if metering area or focus area is supported.
  51. if (!mFocusAreaSupported) {
  52. Log.i(TAG, "[onSingleTapUp] mFocusAreaSupported is false");
  53. +        //  return;
  54. }
  55. if (!mInitialized || mState == STATE_FOCUSING_SNAP_ON_FINISH || mState == STATE_UNKNOWN) {
  56. return;
  57. @@ -528,6 +560,14 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  58. // it can't be called twice when focusing.
  59. mListener.stopFaceDetection();
  60. +            if (!mFocusAreaSupported) {
  61. +                Log.e("vanzo","mNeedPlaySound-->true");
  62. +                mNeedPlaySound = true;
  63. +            }
  64. // Set the focus area and metering area.
  65. mListener.setFocusParameters();
  66. Log.i(TAG, "onSingleTapUp,  mFocusAreaSupported " + mFocusAreaSupported);
  67. @@ -573,7 +613,13 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  68. getFrameview().resume();
  69. }
  70. mState = STATE_IDLE;
  71. +/*
  72. updateFocusUI();
  73. + */
  74. +        if (mFocusAreaSupported)
  75. +            updateFocusUI();
  76. +// End of Vanzo:tangshenghu
  77. mHandler.removeMessages(RESET_TOUCH_FOCUS);
  78. }
  79. @@ -968,4 +1014,13 @@ public class FocusManager implements CameraActivity.OnOrientationListener,
  80. return isSupported;
  81. }
  82. +    @Override
  83. +    public void playFocusSound() {
  84. +        if (mListener != null && mNeedPlaySound)
  85. +            mListener.playSound(MediaActionSound.FOCUS_COMPLETE);
  86. +    }
  87. }

(mediatek/proprietary/packages/apps/Camera/src/com/android/camera/actor/PhotoActor.java)

[java] view plaincopy
  1. // The next steps will be excuted only at the first time.
  2. mCameraActivity.getFrameManager().initializeFrameView(false);
  3. mIsInitialized = true;
  4. +        mHandler.postDelayed(new Runnable() {
  5. +            public void run() {
  6. +            if(mCameraActivity==null||mCameraActivity.getParameters()==null){
  7. +                return;
  8. +             }
  9. +            if (mCameraActivity.getParameters().getMaxNumFocusAreas() == 0)
  10. +                mCameraActivity.getFocusManager().onAutoFocusMoving(true);
  11. +            }
  12. +        }, 1000);
  13. }
  14. private void startPreview(boolean needStop) {
  15. @@ -983,7 +996,13 @@ public class PhotoActor extends CameraActor implements FocusManager.Listener,
  16. if (mModuleManager.onSingleTapUp(view, x, y)) {
  17. Log.i(TAG, "[onSingleTapUp] module manager has handled it,return.");
  18. +            //  return;
  19. +                if (mCameraActivity.getCameraId() == 1)
  20. +                    return;
  21. }
  22. focusManager.onSingleTapUp(x, y);

(mediatek/proprietary/packages/apps/Camera/src/com/android/camera/ui/FocusIndicatorRotateLayout.java)

[java] view plaincopy
  1. private Runnable mDisappear = new Disappear();
  2. private Runnable mEndAction = new EndAction();
  3. +    private Runnable mShowAction = new ShowAction();
  4. +    public boolean mCustomFocusSupported = true;
  5. +    Listener mListener = null;
  6. +    public interface Listener {
  7. +        void playFocusSound();
  8. +    }
  9. private static final int SCALING_UP_TIME = 1000;
  10. private static final int SCALING_DOWN_TIME = 200;
  11. private static final int DISAPPEAR_TIMEOUT = 200;
  12. @@ -100,8 +110,20 @@ public class FocusIndicatorRotateLayout extends RotateLayout implements FocusInd
  13. Log.d(TAG, "showStart mState = " + mState);
  14. if (mState == STATE_IDLE) {
  15. setDrawable(R.drawable.ic_focus_focusing);
  16. +/*
  17. animate().withLayer().setDuration(SCALING_UP_TIME).scaleX(1.5f).scaleY(1.5f);
  18. mState = STATE_FOCUSING;
  19. + */
  20. +            if (mCustomFocusSupported) {
  21. +                animate().withLayer().setDuration(SCALING_UP_TIME).scaleX(1.5f).scaleY(1.5f);
  22. +                mState = STATE_FOCUSING;
  23. +            } else {
  24. +                mState = STATE_FOCUSING;
  25. +                animate().withLayer().setDuration(SCALING_UP_TIME)
  26. +                        .scaleX(1.5f).scaleY(1.5f).withEndAction(mShowAction);
  27. +            }
  28. }
  29. }
  30. @@ -113,6 +135,12 @@ public class FocusIndicatorRotateLayout extends RotateLayout implements FocusInd
  31. animate().withLayer().setDuration(SCALING_DOWN_TIME).scaleX(1f).scaleY(1f)
  32. .withEndAction(timeout ? mEndAction : null);
  33. mState = STATE_FINISHING;
  34. +            if (!mCustomFocusSupported && mListener != null)
  35. +                mListener.playFocusSound();
  36. }
  37. }
  38. @@ -145,6 +173,17 @@ public class FocusIndicatorRotateLayout extends RotateLayout implements FocusInd
  39. }
  40. }
  41. +    private class ShowAction implements Runnable {
  42. +        @Override
  43. +        public void run() {
  44. +            // Keep the focus indicator for some time.
  45. +            showSuccess(true);
  46. +        }
  47. +    }
  48. private class Disappear implements Runnable {
  49. @Override
  50. public void run() {
  51. @@ -175,4 +214,11 @@ public class FocusIndicatorRotateLayout extends RotateLayout implements FocusInd
  52. }
  53. return true;
  54. }
  55. +    public void setCustomListener(Listener listener) {
  56. +        mListener = listener;
  57. +    }

二:插卡开机时去掉通知栏中的读取sim卡联系人的提示消息
(packages/apps/Contacts/SimProcessor/src/com/mediatek/simprocessor/SimProcessorService.java)

[java] view plaincopy
  1. ExtensionManager.registerApplicationContext(getApplication());
  2. mProcessorManager = new SimProcessorManager(this, mListener);
  3. +/*
  4. Notification notification = new Notification(android.R.drawable.ic_dialog_alert,
  5. ONGOING_NOTIFICATION, System.currentTimeMillis());
  6. startForeground(ONGOING_NOTIFICATION_ID, notification);
  7. +*/
  8. }
  9. @Override
  10. @@ -100,7 +102,7 @@ public class SimProcessorService extends Service {
  11. public void onDestroy() {
  12. super.onDestroy();
  13. Log.i(TAG, "[onDestroy]...");
  14. -        stopForeground(true);
  15. +//        stopForeground(true);
  16. System.exit(0);
  17. }

三:更换默认锁屏壁纸
(frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java)

[java] view plaincopy
  1. diff --git a/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
  2. index 9cf7063..d896704 100644
  3. --- a/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
  4. +++ b/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
  5. @@ -51,6 +51,7 @@ import android.graphics.Rect;
  6. import android.graphics.drawable.BitmapDrawable;
  7. import android.graphics.drawable.ColorDrawable;
  8. import android.graphics.drawable.Drawable;
  9. +import android.graphics.Bitmap;
  10. import android.inputmethodservice.InputMethodService;
  11. import android.media.AudioAttributes;
  12. import android.media.MediaMetadata;
  13. @@ -176,6 +177,11 @@ import com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChil
  14. import com.android.systemui.statusbar.stack.StackStateAnimator;
  15. import com.android.systemui.statusbar.stack.StackViewState;
  16. import com.android.systemui.volume.VolumeComponent;
  17. +import android.app.WallpaperManager;
  18. +import java.io.ByteArrayInputStream;
  19. +import java.io.ByteArrayOutputStream;
  20. +import java.io.IOException;
  21. +import android.provider.Settings;
  22. /// M: BMW
  23. import com.mediatek.multiwindow.MultiWindowManager;
  24. @@ -749,6 +755,28 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
  25. mScreenPinningRequest = new ScreenPinningRequest(mContext);
  26. mFalsingManager = FalsingManager.getInstance(mContext);
  27. +/*
  28. + * TODO: replace this line with your comment
  29. + */
  30. +        if(Settings.System.getInt(mContext.getContentResolver(),"def_lock_wall_vanzo",0) != 1){
  31. +            Settings.System.putInt(mContext.getContentResolver(),"def_lock_wall_vanzo" , 1);
  32. +            WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
  33. +            BitmapDrawable bitmapDrawable = (BitmapDrawable)mContext.getResources().getDrawable(R.drawable.default_lock_wallpaper);
  34. +            Bitmap defaultLockWallpaper = bitmapDrawable.getBitmap();
  35. +            ByteArrayOutputStream tmpOut = new ByteArrayOutputStream(2048);
  36. +            if (defaultLockWallpaper.compress(Bitmap.CompressFormat.PNG, 100,tmpOut)) {
  37. +                try {
  38. +                    byte[] outByteArray = tmpOut.toByteArray();
  39. +                    wallpaperManager.setStream(new ByteArrayInputStream(outByteArray),
  40. +                            null, true, WallpaperManager.FLAG_LOCK);
  41. +                } catch (IOException e) {
  42. +                    Log.e(TAG, "IOException", e);
  43. +                } catch (SecurityException e) {
  44. +                    Log.w(TAG, "SecurityException", e);
  45. +                }
  46. +            }
  47. +        }
  48. }
  49. protected void createIconController() {

四:未接来电或未读短信没有显示未读数量
(packages/providers/)
(ContactsProvider/src/com/android/providers/contacts/DbModifierWithNotification.java)

[java] view plaincopy
  1. diff --git a/ContactsProvider/src/com/android/providers/contacts/DbModifierWithNotification.java b/ContactsProvider/src/com/android/providers/contacts/DbModifierWithNotification.java
  2. index 70c56d6..0916739 100644
  3. --- a/ContactsProvider/src/com/android/providers/contacts/DbModifierWithNotification.java
  4. +++ b/ContactsProvider/src/com/android/providers/contacts/DbModifierWithNotification.java
  5. @@ -113,6 +113,15 @@ public class DbModifierWithNotification implements DatabaseModifier {
  6. notifyCallLogChange();
  7. }
  8. +/*
  9. + * launcher show unread call
  10. + */
  11. +        /** M: notify miss call & unread VVM count @{ */
  12. +        if (rowId > 0) {
  13. +            notifyNewCallsCount();
  14. +        }
  15. +
  16. return rowId;
  17. }
  18. @@ -131,6 +140,15 @@ public class DbModifierWithNotification implements DatabaseModifier {
  19. notifyCallLogChange();
  20. }
  21. +/*
  22. + * launcher show unread call
  23. + */
  24. +        /** M: notify miss call & unread VVM count @{ */
  25. +        if (rowId > 0) {
  26. +            notifyNewCallsCount();
  27. +        }
  28. +
  29. return rowId;
  30. }
  31. @@ -145,6 +163,17 @@ public class DbModifierWithNotification implements DatabaseModifier {
  32. }
  33. }
  34. +/*
  35. + * launcher show unread call
  36. + */
  37. +    /**
  38. +     * M: notify launcher to display the count of missed call & VVM.
  39. +     * */
  40. +    private void notifyNewCallsCount() {
  41. +        CallLogProviderEx.notifyNewCallsCount(mContext);
  42. +    }
  43. +
  44. private void notifyVoicemailChangeOnInsert(Uri notificationUri, Set<String> packagesModified) {
  45. if (mIsCallsTable) {
  46. notifyVoicemailChange(notificationUri, packagesModified,
  47. @@ -183,6 +212,15 @@ public class DbModifierWithNotification implements DatabaseModifier {
  48. notifyCallLogChange();
  49. }
  50. +/*
  51. + * launcher show unread call
  52. + */
  53. +        /** M: notify miss call & unread VVM count @{ */
  54. +        if (count > 0) {
  55. +            notifyNewCallsCount();
  56. +        }
  57. +
  58. return count;
  59. }
  60. @@ -217,6 +255,15 @@ public class DbModifierWithNotification implements DatabaseModifier {
  61. notifyCallLogChange();
  62. }
  63. + /*
  64. + * launcher show unread call
  65. + */
  66. +        /** M: notify miss call & unread VVM count @{ */
  67. +        if (count > 0) {
  68. +            notifyNewCallsCount();
  69. +        }
  70. +
  71. return count;
  72. }

(ContactsProvider/src/com/mediatek/providers/contacts/CallLogProviderEx.java)

[java] view plaincopy
  1. diff --git a/ContactsProvider/src/com/mediatek/providers/contacts/CallLogProviderEx.java b/ContactsProvider/src/com/mediatek/providers/contacts/CallLogProviderEx.java
  2. index 1f6aaa4..61b9913 100755
  3. --- a/ContactsProvider/src/com/mediatek/providers/contacts/CallLogProviderEx.java
  4. +++ b/ContactsProvider/src/com/mediatek/providers/contacts/CallLogProviderEx.java
  5. @@ -26,10 +26,15 @@ import android.content.ContentUris;
  6. import android.content.ContentValues;
  7. import android.content.Context;
  8. import android.content.UriMatcher;
  9. +import android.content.ComponentName;
  10. +import android.content.Intent;
  11. import android.database.Cursor;
  12. import android.database.DatabaseUtils;
  13. import android.database.sqlite.SQLiteDatabase;
  14. +import android.database.sqlite.SQLiteException;
  15. import android.database.sqlite.SQLiteQueryBuilder;
  16. +import android.database.sqlite.SQLiteStatement;
  17. +import android.database.sqlite.SQLiteDiskIOException;
  18. import android.net.Uri;
  19. import android.os.UserHandle;
  20. import android.os.UserManager;
  21. @@ -41,12 +46,16 @@ import android.telephony.PhoneNumberUtils;
  22. import android.text.TextUtils;
  23. import android.util.Log;
  24. +import com.android.providers.contacts.ContactsDatabaseHelper;
  25. +import android.provider.Settings;
  26. import com.android.providers.contacts.CallLogDatabaseHelper;
  27. import com.android.providers.contacts.CallLogDatabaseHelper.Tables;
  28. import com.android.providers.contacts.ContactsProvider2;
  29. import com.android.providers.contacts.DatabaseModifier;
  30. import com.android.providers.contacts.DbModifierWithNotification;
  31. import com.android.providers.contacts.VoicemailPermissions;
  32. +import com.android.providers.contacts.ContactsDatabaseHelper.DbProperties;
  33. +import com.android.providers.contacts.util.SelectionBuilder;
  34. import com.android.providers.contacts.util.UserUtils;
  35. import com.mediatek.providers.contacts.CallLogSearchSupport;
  36. import com.mediatek.providers.contacts.ContactsProviderUtils;
  37. @@ -87,6 +96,18 @@ public class CallLogProviderEx {
  38. mContext = context;
  39. }
  40. +    private interface LegacyConstants {
  41. +        /** Table name used in the contacts DB.*/
  42. +        String CALLS_LEGACY = "calls";
  43. +
  44. +        /** Table name used in the contacts DB.*/
  45. +        String VOICEMAIL_STATUS_LEGACY = "voicemail_status";
  46. +
  47. +        /** Prop name used in the contacts DB.*/
  48. +        String CALL_LOG_LAST_SYNCED_LEGACY = "call_log_last_synced";
  49. +    }
  50. +
  51. +
  52. public static synchronized CallLogProviderEx getInstance(Context context) {
  53. if (sCallLogProviderEx == null) {
  54. sCallLogProviderEx = new CallLogProviderEx(context);
  55. @@ -240,6 +261,73 @@ public class CallLogProviderEx {
  56. .appendPath("call_log").build(), null, false);
  57. }
  58. +    // send new Calls broadcast to launcher to update unread icon
  59. +    public static final void notifyNewCallsCount(Context context) {
  60. +        SQLiteDatabase db = null;
  61. +        Cursor c = null;
  62. +        int newCallsCount = 0;
  63. +/*
  64. +        try {
  65. +            Cursor cursor = context.getContentResolver().query(CallLog.Calls.CONTENT_URI,
  66. +                    new String[] { Calls.TYPE }, " type=?",
  67. +                    new String[] { Calls.MISSED_TYPE + ""}, "date desc");
  68. +            if (cursor != null) {
  69. +                newCallsCount = cursor.getCount();
  70. +                cursor.close();
  71. +                android.util.Log.d("yjp", "    newCallsCount : " + newCallsCount);
  72. +            }
  73. +            android.util.Log.d("yjp", "    cursor  : " + cursor);
  74. +        }catch (SecurityException e ) {
  75. +            android.util.Log.d("yjp", "  also return ");
  76. +        //    return ;
  77. +        }
  78. + */
  79. +        try {
  80. +            db = getDatabaseHelper(context).getWritableDatabase();
  81. +
  82. +            if (db == null || context == null) {
  83. +                LogUtils.w(TAG, "[notifyNewCallsCount] Cannot notify with null db or context.");
  84. +                return;
  85. +            }
  86. +            android.util.Log.d("yjp", "    notifyNewCallsCount  db : " + db  + "\n   Tables.CALLS : " + Tables.CALLS);
  87. +            db.beginTransaction();
  88. +            c = db.rawQuery("SELECT count(*) FROM " + Tables.CALLS
  89. +                    + " WHERE " + Calls.TYPE + " in (" + Calls.MISSED_TYPE
  90. +                    + "," + Calls.VOICEMAIL_TYPE
  91. +                    + ") AND " + Calls.NEW + "=1", null);
  92. +            if (c != null && c.moveToFirst()) {
  93. +                newCallsCount = c.getInt(0);
  94. +            }
  95. +        } catch (SQLiteException e) {
  96. +            LogUtils.w(TAG, "[notifyNewCallsCount] SQLiteException:" + e);
  97. +            return;
  98. +        } finally {
  99. +            if (c != null) {
  100. +                c.close();
  101. +            }
  102. +            db.endTransaction();
  103. +        }
  104. +
  105. +        LogUtils.i(TAG, "[notifyNewCallsCount] newCallsCount = " + newCallsCount);
  106. +        //send count=0 to clear the unread icon
  107. +        if (newCallsCount >= 0) {
  108. +            Intent newIntent = new Intent(Intent.ACTION_UNREAD_CHANGED);
  109. +            newIntent.putExtra(Intent.EXTRA_UNREAD_NUMBER, newCallsCount);
  110. +            newIntent.putExtra(Intent.EXTRA_UNREAD_COMPONENT,
  111. +                    new ComponentName(ConstantsUtils.CONTACTS_PACKAGE,
  112. +                    ConstantsUtils.CONTACTS_DIALTACTS_ACTIVITY));
  113. +            context.sendBroadcast(newIntent);
  114. +            // use the public key CONTACTS_UNREAD_KEY that statement in Setting Provider.
  115. +            Settings.System.putInt(context.getContentResolver(),
  116. +                    "com_android_contacts_mtk_unread", Integer.valueOf(newCallsCount));
  117. +        }
  118. +    }
  119. +
  120. +    protected static CallLogDatabaseHelper getDatabaseHelper(final Context context) {
  121. +        return CallLogDatabaseHelper.getInstance(context);
  122. +    }
  123. +
  124. /**
  125. * Returns a {@link DatabaseModifier} that takes care of sending necessary notifications
  126. * after the operation is performed.

五:wifi热点名称自定义
(frameworks/)

[java] view plaincopy
  1. diff --git a/opt/net/wifi/service/Android.mk b/opt/net/wifi/service/Android.mk
  2. index d4becf8..e577516 100644
  3. --- a/opt/net/wifi/service/Android.mk
  4. +++ b/opt/net/wifi/service/Android.mk
  5. @@ -39,6 +39,8 @@ LOCAL_SRC_FILES := \
  6. LOCAL_MODULE := libwifi-hal
  7. +LOCAL_JAVA_LIBRARIES := bouncycastle conscrypt services telephony-common
  8. +
  9. include $(BUILD_STATIC_LIBRARY)
  10. # Make HAL stub library 2
  11. diff --git a/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java b/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
  12. index a4cd27a..d56740b 100644
  13. --- a/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
  14. +++ b/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java
  15. @@ -29,7 +29,7 @@ import android.os.Handler;
  16. import android.os.Message;
  17. import android.os.Messenger;
  18. import android.util.Log;
  19. -
  20. +import android.text.TextUtils;
  21. import com.android.internal.util.AsyncChannel;
  22. import com.android.internal.R;
  23. import com.android.internal.util.State;
  24. @@ -246,7 +246,14 @@ class WifiApConfigStore extends StateMachine {
  25. will keep the device secure after the update */
  26. private void setDefaultApConfiguration() {
  27. WifiConfiguration config = new WifiConfiguration();
  28. -        IWifiFwkExt wifiFwkExt = MPlugin.createInstance(IWifiFwkExt.class.getName(), mContext);
  29. +        int RandomNum = (int)(Math.random()*(9999-1000+1))+1000;
  30. +        String tempSSID = "Kata L1_" + RandomNum;
  31. +        Log.i("rmy", "tempSSID="+tempSSID);
  32. +        config.SSID = tempSSID;
  33. +        if (TextUtils.isEmpty(config.SSID)) {
  34. +            config.SSID = mContext.getString(R.string.wifi_tether_configure_ssid_default);
  35. +        }
  36. +        /*IWifiFwkExt wifiFwkExt = MPlugin.createInstance(IWifiFwkExt.class.getName(), mContext);
  37. if (SystemProperties.get("ro.mtk_bsp_package").equals("1")) {
  38. if (wifiFwkExt != null) {
  39. config.SSID = wifiFwkExt.getApDefaultSsid();
  40. @@ -263,7 +270,7 @@ class WifiApConfigStore extends StateMachine {
  41. config.SSID = config.SSID + random.nextInt(1000);
  42. Log.d(TAG, "setDefaultApConfiguration, SSID:" + config.SSID);
  43. }
  44. -        }
  45. +        }*/
  46. config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
  47. String randomUUID = UUID.randomUUID().toString();
  48. //first 12 chars from xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

六:camera中的GPS开关
(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  2. index 2894994..e48f37e 100755
  3. --- a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  4. +++ b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  5. @@ -949,7 +949,7 @@ public class SettingUtils {
  6. }
  7. if (version == 2) {
  8. editor.putString(SettingConstants.KEY_RECORD_LOCATION,
  9. -                    pref.getBoolean(SettingConstants.KEY_RECORD_LOCATION, false) ?
  10. +                    pref.getBoolean(SettingConstants.KEY_RECORD_LOCATION, true) ?
  11. RecordLocationPreference.VALUE_ON
  12. : RecordLocationPreference.VALUE_NONE);
  13. version = 3;
  14. diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  15. index cc6bbfd..be4fd74 100755
  16. --- a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  17. +++ b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  18. @@ -959,7 +959,7 @@ public class SettingCtrl {
  19. }
  20. if (version == 2) {
  21. editor.putString(SettingKeys.KEY_RECORD_LOCATION,
  22. -                    pref.getBoolean(SettingKeys.KEY_RECORD_LOCATION, false)
  23. +                    pref.getBoolean(SettingKeys.KEY_RECORD_LOCATION, true)
  24. ? "on" : "none");
  25. version = 3;
  26. }

七:设置 > 语言合输入法 > 个人字典中添加默认字符
(packages/apps/Settings/)

[java] view plaincopy
  1. diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
  2. index a1cbbd3..e8f7507 100644
  3. --- a/src/com/android/settings/SettingsActivity.java
  4. +++ b/src/com/android/settings/SettingsActivity.java
  5. @@ -149,6 +149,11 @@ import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. +import android.content.ContentResolver;
  10. +import android.net.Uri;
  11. +import android.provider.UserDictionary.Words;
  12. +import android.provider.UserDictionary;
  13. +import android.content.ContentValues;
  14. /* Vanzo:tanglei on: Mon, 26 Jan 2015 16:35:50 +0800
  15. */
  16. @@ -908,6 +913,36 @@ public class SettingsActivity extends Activity
  17. if(mDisplaySearch && !TextUtils.isEmpty(mSearchQuery)) {
  18. onQueryTextSubmit(mSearchQuery);
  19. }
  20. +
  21. +        if (android.provider.Settings.System.getInt(this.getContentResolver(),"first_write_contentvalues", 0) == 0) {
  22. +            ContentResolver resolver = getContentResolver();
  23. +            int COLUMN_COUNT = 5;
  24. +            ContentValues values = new ContentValues(COLUMN_COUNT);
  25. +            values.put(UserDictionary.Words.WORD, "Kata");
  26. +            values.put(UserDictionary.Words.SHORTCUT, "Kata");
  27. +            values.put(UserDictionary.Words.FREQUENCY, 250);
  28. +            Uri result = resolver.insert(UserDictionary.Words.CONTENT_URI, values);
  29. +
  30. +            values = new ContentValues(COLUMN_COUNT);
  31. +            values.put(UserDictionary.Words.WORD, "KataCloud");
  32. +            values.put(UserDictionary.Words.SHORTCUT, "KataCloud");
  33. +            values.put(UserDictionary.Words.FREQUENCY, 250);
  34. +            result = resolver.insert(UserDictionary.Words.CONTENT_URI, values);
  35. +
  36. +            values = new ContentValues(COLUMN_COUNT);
  37. +            values.put(UserDictionary.Words.WORD, "128Online");
  38. +            values.put(UserDictionary.Words.SHORTCUT, "128Online");
  39. +            values.put(UserDictionary.Words.FREQUENCY, 250);
  40. +            result = resolver.insert(UserDictionary.Words.CONTENT_URI, values);
  41. +
  42. +            values = new ContentValues(COLUMN_COUNT);
  43. +            values.put(UserDictionary.Words.WORD, "Owtel");
  44. +            values.put(UserDictionary.Words.SHORTCUT, "Owtel");
  45. +            values.put(UserDictionary.Words.FREQUENCY, 250);
  46. +            result = resolver.insert(UserDictionary.Words.CONTENT_URI, values);
  47. +
  48. +            android.provider.Settings.System.putInt(this.getContentResolver(),"first_write_contentvalues", 1);
  49. +        }
  50. }
  51. @Override

八:图库中图片拉伸放大倍数

(packages/apps/Gallery2/)

[java] view plaincopy
  1. diff --git a/src/com/android/gallery3d/ui/PositionController.java b/src/com/android/gallery3d/ui/PositionController.java
  2. index 07dc434..562b99b 100755
  3. --- a/src/com/android/gallery3d/ui/PositionController.java
  4. +++ b/src/com/android/gallery3d/ui/PositionController.java
  5. @@ -90,7 +90,7 @@ public class PositionController {
  6. // We try to scale up the image to fill the screen. But in order not to
  7. // scale too much for small icons, we limit the max up-scaling factor here.
  8. -    private static final float SCALE_LIMIT = 4;
  9. +    private static final float SCALE_LIMIT = 2.5f;
  10. // For user's gestures, we give a temporary extra scaling range which goes
  11. // above or below the usual scaling limits.

九:图库中双击图片放大倍数

(packages/apps/Gallery2)

[java] view plaincopy
  1. diff --git a/src/com/android/gallery3d/ui/PositionController.java b/src/com/android/gallery3d/ui/PositionController.java
  2. index 07dc434..562b99b 100755
  3. --- a/src/com/android/gallery3d/ui/PositionController.java
  4. +++ b/src/com/android/gallery3d/ui/PositionController.java
  5. @@ -90,7 +90,7 @@ public class PositionController {
  6. // We try to scale up the image to fill the screen. But in order not to
  7. // scale too much for small icons, we limit the max up-scaling factor here.
  8. -    private static final float SCALE_LIMIT = 4;
  9. +    private static final float SCALE_LIMIT = 2.5f;
  10. // For user's gestures, we give a temporary extra scaling range which goes
  11. // above or below the usual scaling limits.

十:默认MTK fota
1) 加入ngm宏
NGM_SYSTEM_UPDATE_SUPPORT_FOR_80M=yes
2) 删除广升 fota
ADUPS_FOTA_SUPPORT=no
3) 配置fota网址
(vanzo/)

[java] view plaincopy
  1. diff --git a/packages/SystemUpdate_for_80m/res/values/address.xml b/packages/SystemUpdate_for_80m/res/values/address.xml
  2. index e891226..20261f7 100755
  3. --- a/packages/SystemUpdate_for_80m/res/values/address.xml
  4. +++ b/packages/SystemUpdate_for_80m/res/values/address.xml
  5. @@ -1,9 +1,9 @@
  6. <?xml version="1.0" encoding="utf-8"?>
  7. <resources>
  8. -    <string name="address_login" translatable="false">http://ota.ngmitalia.it/fota/download/login.php</string>
  9. -    <string name="address_check_version" translatable="false">http://ota.ngmitalia.it/fota/download/checkversion.php</string>
  10. -    <string name="address_download_full" translatable="false">http://ota.ngmitalia.it/fota/download/downloadfullota.php</string>
  11. -    <string name="address_download_delta" translatable="false">http://ota.ngmitalia.it/fota/download/download.php</string>
  12. +    <string name="address_login" translatable="false">客户提供</string>
  13. +    <string name="address_check_version" translatable="false">客户提供</string>
  14. +    <string name="address_download_full" translatable="false">客户提供</string>
  15. +    <string name="address_download_delta" translatable="false">客户提供</string>
  16. <string name="address_update_result" translatable="false">updateResult</string>
  17. <string name="gms_load_flag" translatable="false">/system/etc/permissions/com.google.android.gms.releasenote.xml</string>
  18. </resources>

4) 加入fota入口
(packages/apps/Settings/)

[java] view plaincopy
  1. diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
  2. index 94e27ea..4e3a489 100644
  3. --- a/res/values-zh-rCN/strings.xml
  4. +++ b/res/values-zh-rCN/strings.xml
  5. @@ -20,6 +20,7 @@
  6. <string name="no" msgid="6731231425810196216">"否"</string>
  7. <string name="create" msgid="3578857613172647409">"创建"</string>
  8. <string name="allow" msgid="3349662621170855910">"允许"</string>
  9. +    <string name="system_update">系统升级</string>
  10. <string name="deny" msgid="6947806159746484865">"拒绝"</string>
  11. <string name="dlg_close" msgid="7471087791340790015">"关闭"</string>
  12. <string name="dlg_switch" msgid="6243971420240639064">"切换"</string>
  13. diff --git a/res/values/strings.xml b/res/values/strings.xml
  14. index ad5ca8c..202090e 100644
  15. --- a/res/values/strings.xml
  16. +++ b/res/values/strings.xml
  17. @@ -29,7 +29,7 @@
  18. <string name="dlg_close">Close</string>
  19. <!-- Strings for Dialog switch button [CHAR LIMIT=20] -->
  20. <string name="dlg_switch">Switch</string>
  21. -
  22. +    <string name="system_update">System Update</string>
  23. <!-- Device Info --> <skip />
  24. <!-- Device Info screen. Used for a status item's value when the proper value is not known -->
  25. <string name="device_info_default">Unknown</string>
  26. diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml
  27. index 06d543a..f2dd846 100644
  28. --- a/res/xml/device_info_settings.xml
  29. +++ b/res/xml/device_info_settings.xml
  30. @@ -65,6 +65,13 @@
  31. android:summary="@string/software_updates_more_summary" >
  32. </PreferenceScreen>
  33. +        <PreferenceScreen android:key="system_version"
  34. +                android:title="@string/system_update">
  35. +            <intent android:action="android.intent.action.MAIN"
  36. +                    android:targetPackage="com.mediatek.systemupdate"
  37. +                    android:targetClass="com.mediatek.systemupdate.MainEntry" />
  38. +        </PreferenceScreen>
  39. +
  40. <!-- Device status - launches activity -->
  41. <PreferenceScreen android:key="status_info"
  42. android:title="@string/device_status"

十一:otg做成5.1的样子,在filemanager中显示

(frameworks/base/services/core/java/com/android/server/MountService.java)

[java] view plaincopy
  1. diff --git a/base/services/core/java/com/android/server/MountService.java b/base/services/core/java/com/android/server/MountService.java
  2. 2 index 7204af3..f38c4b0 100755
  3. --- a/base/services/core/java/com/android/server/MountService.java
  4. +++ b/base/services/core/java/com/android/server/MountService.java
  5. @@ -1301,7 +1301,7 @@ class MountService extends IMountService.Stub
  6. // Adoptable public disks are visible to apps, since they meet
  7. // public API requirement of being in a stable location.
  8. -            if (vol.disk.isAdoptable() || vol.isPhoneStorage()) {
  9. +            if (vol.disk.isAdoptable() || vol.isPhoneStorage() || vol.isUSBOTG()) {
  10. vol.mountFlags |= VolumeInfo.MOUNT_FLAG_VISIBLE;
  11. }

十二:进入相机时亮度最大,退出还原

(vendor/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/CameraActivity.java)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/CameraActivity.java b/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/CameraActivity.java
  2. index 4f3234c..a68047a 100755
  3. --- a/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/CameraActivity.java
  4. +++ b/mediatek/proprietary/packages/apps/Camera/src/com/android/camera/CameraActivity.java
  5. @@ -394,7 +394,14 @@ public class CameraActivity extends ActivityBase implements
  6. CameraPerformanceTracker.onEvent(TAG,
  7. CameraPerformanceTracker.NAME_CAMERA_ON_RESUME,
  8. CameraPerformanceTracker.ISEND);
  9. +        setScreenBrightness(1.0f);
  10. }
  11. +     private void setScreenBrightness(float value) {
  12. +          WindowManager.LayoutParams params = this.getWindow().getAttributes();
  13. +          params.screenBrightness = value;
  14. +          this.getWindow().setAttributes(params);
  15. +    }
  16. +
  17. /**
  18. * the result if CameraActivity permission check.

十三:相机中的GPS默认开启

(vendor/)

[java] view plaincopy
  1. diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  2. index 2894994..e48f37e 100755
  3. --- a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  4. +++ b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/setting/SettingUtils.java
  5. @@ -949,7 +949,7 @@ public class SettingUtils {
  6. }
  7. if (version == 2) {
  8. editor.putString(SettingConstants.KEY_RECORD_LOCATION,
  9. -                    pref.getBoolean(SettingConstants.KEY_RECORD_LOCATION, false) ?
  10. +                    pref.getBoolean(SettingConstants.KEY_RECORD_LOCATION, true) ?
  11. RecordLocationPreference.VALUE_ON
  12. : RecordLocationPreference.VALUE_NONE);
  13. version = 3;
  14. diff --git a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  15. index cc6bbfd..be4fd74 100755
  16. --- a/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  17. +++ b/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/v2/setting/SettingCtrl.java
  18. @@ -959,7 +959,7 @@ public class SettingCtrl {
  19. }
  20. if (version == 2) {
  21. editor.putString(SettingKeys.KEY_RECORD_LOCATION,
  22. -                    pref.getBoolean(SettingKeys.KEY_RECORD_LOCATION, false)
  23. +                    pref.getBoolean(SettingKeys.KEY_RECORD_LOCATION, true)
  24. ? "on" : "none");
  25. version = 3;
  26. }

十四:开机动画完成后,闪半张壁纸

7.0 默认不滑动的壁纸宽不用X2

(frameworks/)

[java] view plaincopy
  1. diff --git a/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
  2. index 33ec45a..c62e223 100644
  3. --- a/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
  4. +++ b/base/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
  5. @@ -2003,9 +2003,13 @@ public class WallpaperManagerService extends IWallpaperManager.Stub {
  6. private void ensureSaneWallpaperData(WallpaperData wallpaper) {
  7. // We always want to have some reasonable width hint.
  8. int baseSize = getMaximumSizeDimension();
  9. +/* Vanzo:zhongyeqing on: Thu, 22 Jun 2017 15:43:08 +0800
  10. + * TODO: replace this line with your comment
  11. if (wallpaper.width < baseSize) {
  12. wallpaper.width = baseSize;
  13. }
  14. + */
  15. +// End of Vanzo: zhongyeqing
  16. if (wallpaper.height < baseSize) {
  17. wallpaper.height = baseSize;
  18. }

(packages/apps/Launcher3/)

[java] view plaincopy
  1. diff --git a/WallpaperPicker/res/values/dimens.xml b/WallpaperPicker/res/values/dimens.xml
  2. index 0447c6d..a1ff7b7 100755
  3. --- a/WallpaperPicker/res/values/dimens.xml
  4. +++ b/WallpaperPicker/res/values/dimens.xml
  5. @@ -16,7 +16,7 @@
  6. <resources>
  7. <!-- Wallpaper picker -->
  8. -    <dimen name="wallpaperThumbnailWidth">106.5dp</dimen>
  9. -    <dimen name="wallpaperThumbnailHeight">94.5dp</dimen>
  10. +    <dimen name="wallpaperThumbnailWidth">48dp</dimen>
  11. +    <dimen name="wallpaperThumbnailHeight">85dp</dimen>
  12. <dimen name="wallpaperItemIconSize">32dp</dimen>
  13. </resources>
  14. diff --git a/src/com/android/launcher3/util/WallpaperUtils.java b/src/com/android/launcher3/util/WallpaperUtils.java
  15. index b9fccbc..6a78892 100755
  16. --- a/src/com/android/launcher3/util/WallpaperUtils.java
  17. +++ b/src/com/android/launcher3/util/WallpaperUtils.java
  18. @@ -110,13 +110,15 @@ public final class WallpaperUtils {
  19. // We need to ensure that there is enough extra space in the wallpaper
  20. // for the intended parallax effects
  21. +            Point realSize = new Point();
  22. +            windowManager.getDefaultDisplay().getRealSize(realSize);
  23. final int defaultWidth, defaultHeight;
  24. if (res.getConfiguration().smallestScreenWidthDp >= 720) {
  25. defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
  26. defaultHeight = maxDim;
  27. } else {
  28. -                defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
  29. -                defaultHeight = maxDim;
  30. +                defaultWidth = realSize.x;
  31. +                defaultHeight = realSize.y;
  32. }
  33. sDefaultWallpaperSize = new Point(defaultWidth, defaultHeight);
  34. }

十五:7.0 默认 mtp

(frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java)

[java] view plaincopy
  1. diff --git a/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java
  2. index 9d3b655..4ac7646 100644
  3. --- a/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java
  4. +++ b/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java
  5. @@ -453,7 +453,7 @@ functions = addFunction(functions, UsbManager.USB_FUNCTION_ACM);
  6. private boolean mHostConnected;
  7. private boolean mSourcePower;
  8. private boolean mConfigured;
  9. -        private boolean mUsbDataUnlocked;
  10. +        private boolean mUsbDataUnlocked = true;
  11. private String mCurrentFunctions;
  12. private String mDefaultFunctions;
  13. private boolean mCurrentFunctionsApplied;
  14. @@ -1361,7 +1361,7 @@ functions = addFunction(functions, UsbManager.USB_FUNCTION_ACM);
  15. mUsbConfigured = mConfigured;
  16. if (!mConnected) {
  17. // When a disconnect occurs, relock access to sensitive user data
  18. -                        mUsbDataUnlocked = false;
  19. +                    //  mUsbDataUnlocked = false;
  20. }
  21. updateUsbNotification();
  22. updateAdbNotification();
  23. @@ -1370,7 +1370,7 @@ functions = addFunction(functions, UsbManager.USB_FUNCTION_ACM);
  24. updateCurrentAccessory();
  25. } else if (!mConnected) {
  26. // restore defaults when USB is disconnected
  27. -                        setEnabledFunctions(null, false);
  28. +                  //    setEnabledFunctions(null, false);
  29. }
  30. if (mBootCompleted) {
  31. updateUsbStateBroadcastIfNeeded();

十六:7.0 电脑上显示的mtp名字

(frameworks/)

[java] view plaincopy
  1. diff --git a/av/media/mtp/MtpServer.cpp b/av/media/mtp/MtpServer.cpp
  2. index 9f5d3b7..2a219be 100755
  3. --- a/av/media/mtp/MtpServer.cpp
  4. +++ b/av/media/mtp/MtpServer.cpp
  5. @@ -500,7 +500,13 @@ MtpResponseCode MtpServer::doGetDeviceInfo() {
  6. mData.putString(string);   // Manufacturer
  7. property_get("ro.product.model", prop_value, "MTP Device");
  8. +
  9. +/*
  10. + * TODO: replace this line with your comment
  11. string.set(prop_value);
  12. + */
  13. +    string.set("ADVAN S50H");
  14. +// End of
  15. mData.putString(string);   // Model
  16. string.set("1.0");
  17. mData.putString(string);   // Device Version
  18. diff --git a/base/media/java/android/mtp/MtpDatabase.java b/base/media/java/android/mtp/MtpDatabase.java
  19. index 794b893..027395b 100755
  20. --- a/base/media/java/android/mtp/MtpDatabase.java
  21. +++ b/base/media/java/android/mtp/MtpDatabase.java
  22. @@ -44,6 +44,7 @@ import java.io.IOException;
  23. import java.util.HashMap;
  24. import java.util.Locale;
  25. import java.util.concurrent.atomic.AtomicBoolean;
  26. +import android.os.SystemProperties;
  27. /**
  28. * {@hide}
  29. @@ -851,18 +852,81 @@ public class MtpDatabase implements AutoCloseable {
  30. private int getDeviceProperty(int property, long[] outIntValue, char[] outStringValue) {
  31. Log.d(TAG, "getDeviceProperty  property = 0x" + Integer.toHexString(property));
  32. +        String value = "",deviceName;
  33. +        int length = 0,lengthDeviceName = 0;
  34. switch (property) {
  35. case MtpConstants.DEVICE_PROPERTY_SYNCHRONIZATION_PARTNER:
  36. +                //Ainge
  37. +                // writable string properties kept in shared preferences
  38. +                value = mDeviceProperties.getString(Integer.toString(property), "");
  39. +                length = value.length();
  40. +                if (length > 255) {
  41. +                    length = 255;
  42. +                }
  43. +                value.getChars(0, length, outStringValue, 0);
  44. +                outStringValue[length] = 0;
  45. +                /// M: Added for USB Develpment debug, more log for more debuging help @{
  46. +                if(length > 0) {
  47. +                    Log.d(TAG, "getDeviceProperty  property = " + Integer.toHexString(property));
  48. +                    Log.d(TAG, "getDeviceProperty  value = " + value + ", length = " + length);
  49. +                }
  50. +                Log.d(TAG, "getDeviceProperty  length = " + length);
  51. +                /// M: Added Modification for ALPS00278882 @{
  52. +                // Return the device name for the PC display if the FriendlyName is empty!!
  53. +                deviceName = "ADVAN S50H";
  54. +
  55. +                lengthDeviceName = deviceName.length();
  56. +                if (lengthDeviceName > 255) {
  57. +                    lengthDeviceName = 255;
  58. +                }
  59. +                if(lengthDeviceName >0) {
  60. +                    deviceName.getChars(0, lengthDeviceName, outStringValue, 0);
  61. +                    outStringValue[lengthDeviceName] = 0;
  62. +                    Log.d(TAG, "getDeviceProperty  deviceName = " + deviceName + ", lengthDeviceName = " + lengthDeviceName);
  63. +                } else {
  64. +                    Log.d(TAG, "getDeviceProperty  lengthDeviceName = " + lengthDeviceName);
  65. +                }
  66. +                /// M: @}
  67. +                return MtpConstants.RESPONSE_OK;
  68. case MtpConstants.DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME:
  69. // writable string properties kept in shared preferences
  70. -                String value = mDeviceProperties.getString(Integer.toString(property), "");
  71. -                int length = value.length();
  72. +                //String value = mDeviceProperties.getString(Integer.toString(property), "");
  73. +                //int length = value.length();
  74. +                value = mDeviceProperties.getString(Integer.toString(property), "");
  75. +                length = value.length();
  76. if (length > 255) {
  77. length = 255;
  78. }
  79. value.getChars(0, length, outStringValue, 0);
  80. outStringValue[length] = 0;
  81. +                /// M: Added for USB Develpment debug, more log for more debuging help @{
  82. +                if(length > 0) {
  83. +                    Log.d(TAG, "getDeviceProperty  property = " + Integer.toHexString(property));
  84. +                    Log.d(TAG, "getDeviceProperty  value = " + value + ", length = " + length);
  85. +                }
  86. +                else if(SystemProperties.get("ro.sys.usb.mtp.whql.enable").equals("0"))
  87. +                {
  88. +                    Log.d(TAG, "getDeviceProperty  length = " + length);
  89. +                  /// M: Added Modification for ALPS00278882 @{
  90. +                    if(property == MtpConstants.DEVICE_PROPERTY_DEVICE_FRIENDLY_NAME) {
  91. +                        // Return the device name for the PC display if the FriendlyName is empty!!
  92. +                        deviceName = "ADVAN S50H";
  93. +                        lengthDeviceName = deviceName.length();
  94. +                        if (lengthDeviceName > 255) {
  95. +                            lengthDeviceName = 255;
  96. +                        }
  97. +                        if(lengthDeviceName >0) {
  98. +                            deviceName.getChars(0, lengthDeviceName, outStringValue, 0);
  99. +                            outStringValue[lengthDeviceName] = 0;
  100. +                            Log.d(TAG, "getDeviceProperty  deviceName = " + deviceName + ", lengthDeviceName = " + lengthDeviceName);
  101. +                        } else {
  102. +                            Log.d(TAG, "getDeviceProperty  lengthDeviceName = " + lengthDeviceName);
  103. +                        }
  104. +                    }
  105. +                    /// M: @}
  106. +                }
  107. +                /// M: @}
  108. return MtpConstants.RESPONSE_OK;
  109. case MtpConstants.DEVICE_PROPERTY_IMAGE_SIZE:

十七:设置 > SIM卡应用 > 短信            删除总是询问

(packages/apps/Settings/)

(ext/src/com/mediatek/settings/ext/DefaultRCSSettings.java)

[java] view plaincopy
  1. diff --git a/ext/src/com/mediatek/settings/ext/DefaultRCSSettings.java b/ext/src/com/mediatek/settings/ext/DefaultRCSSettings.java
  2. index 38b192b..2ea8474 100644
  3. --- a/ext/src/com/mediatek/settings/ext/DefaultRCSSettings.java
  4. +++ b/ext/src/com/mediatek/settings/ext/DefaultRCSSettings.java
  5. @@ -29,7 +29,7 @@ public class DefaultRCSSettings implements IRCSSettings {
  6. */
  7. public boolean isNeedAskFirstItemForSms() {
  8. Log.d("@M_" + TAG, "isNeedAskFirstItemForSms");
  9. -        return true;
  10. +        return false;
  11. }
  12. /**

(src/com/android/settings/sim/SimDialogActivity.java)

[java] view plaincopy
  1. @@ -619,13 +626,9 @@ public class SimDialogActivity extends Activity {
  2. if (value < 1) {
  3. int length = subInfoList == null ? 0 : subInfoList.size();
  4. -            if (length == 1) {
  5. subId = subInfoList.get(value).getSubscriptionId();
  6. -            } else {
  7. -                subId = DefaultSmsSimSettings.ASK_USER_SUB_ID;
  8. -            }
  9. } else if (value >= 1 && value < subInfoList.size() + 1) {
  10. -            subId = subInfoList.get(value - 1).getSubscriptionId();
  11. +            subId = subInfoList.get(value).getSubscriptionId();
  12. } else {
  13. /// M: for plug-in
  14. subId = mSimManagementExt.getDefaultSmsSubIdForAuto();

十八:设置 > SIM卡应用 > 短信       默认SIM卡1

(packages/apps/Settings/)

(src/com/android/settings/sim/SimDialogActivity.java)

[java] view plaincopy
  1. <span style="font-size:10px;">@@ -72,6 +72,7 @@ public class SimDialogActivity extends Activity {
  2. public static final int CALLS_PICK = 1;
  3. public static final int SMS_PICK = 2;
  4. public static final int PREFERRED_PICK = 3;
  5. +    public static final int DEFAULT_DATA_PICK = 4;
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. @@ -118,6 +119,9 @@ public class SimDialogActivity extends Activity {
  9. /// @}
  10. displayPreferredDialog(extras.getInt(PREFERRED_SIM));
  11. break;
  12. +            case DEFAULT_DATA_PICK:
  13. +                setDefaultSmsSubId(this,extras.getInt(PREFERRED_SIM));
  14. +                break;
  15. default:
  16. throw new IllegalArgumentException("Invalid dialog type " + dialogType + " sent.");
  17. }</span>

(src/com/android/settings/sim/SimSelectNotification.java)

[java] view plaincopy
  1. @@ -172,27 +174,43 @@ public class SimSelectNotification extends BroadcastReceiver {
  2. /// @}
  3. // If there is only one subscription, ask if user wants to use if for everything
  4. +            Log.i("rmy", "---------- one sim --------------");
  5. Intent newIntent = new Intent(context, SimDialogActivity.class);
  6. newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  7. -            newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.PREFERRED_PICK);
  8. -            newIntent.putExtra(SimDialogActivity.PREFERRED_SIM, sil.get(0).getSimSlotIndex());
  9. +            newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.DEFAULT_DATA_PICK);
  10. +            Log.i("rmy", "getSimSlotIndex() ="+ sil.get(0).getSimSlotIndex());
  11. +            Log.i("rmy", "getSubscriptionId() = "+ sil.get(0).getSubscriptionId());
  12. +            newIntent.putExtra(SimDialogActivity.PREFERRED_SIM, sil.get(0).getSubscriptionId());
  13. context.startActivity(newIntent);
  14. +            setDefaultSmsSubId(context,sil.get(0).getSubscriptionId());
  15. +
  16. /// M: for [C2K OMH Warning]
  17. OmhEventHandler.getInstance(context).sendEmptyMessage(OmhEventHandler.SET_BUSY);
  18. -        } else if (!dataSelected ||
  19. -            /// M: Op01 open market request. @{
  20. -                SystemProperties.get("ro.cmcc_light_cust_support").equals("1")) {
  21. -            /// @}
  22. +            } else{
  23. +            Log.i("rmy", "---------- two sim --------------");
  24. // If there are multiple, ensure they pick default data
  25. -            Intent newIntent = new Intent(context, SimDialogActivity.class);
  26. -            newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  27. -            newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.DATA_PICK);
  28. -            context.startActivity(newIntent);
  29. -            /// M: for [C2K OMH Warning]
  30. -            OmhEventHandler.getInstance(context).sendEmptyMessage(OmhEventHandler.SET_BUSY);
  31. +            if (!dataSelected){
  32. +                Intent newIntent = new Intent(context, SimDialogActivity.class);
  33. +                newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  34. +                newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.DEFAULT_DATA_PICK);
  35. +                newIntent.putExtra(SimDialogActivity.PREFERRED_SIM, sil.get(0).getSubscriptionId());
  36. +                context.startActivity(newIntent);
  37. +            }
  38. +
  39. +            if (!smsSelected){
  40. +                setDefaultSmsSubId(context,sil.get(0).getSubscriptionId());
  41. +            }

Android 系统(191)---ODM 开发用户常见需求文档(九)相关推荐

  1. Android 系统(132)---ODM 开发用户常见需求文档(六)

    ODM 开发用户常见需求文档(六) 一:锁卡界面显示哪张SIM卡 (frameworks/base/packages/Keyguard/src/com/mediatek/keyguard/Teleph ...

  2. Android 系统 (131)---ODM 开发用户常见需求文档(五)

    ODM 开发用户常见需求文档(五) 一:图库中的照片全屏显 (packages/apps/Gallery2/) 第一种: [java] view plaincopy diff --git a/src/ ...

  3. Android 系统 (130)---ODM 开发用户常见需求文档(四)

    ODM 开发用户常见需求文档(四) 一:取消用户模式 (frameworks/) diff --git a/base/packages/SystemUI/res/layout/keyguard_sta ...

  4. Android 系统 (128)---ODM 开发用户常见需求文档(二)

    Android6.0 MTK 需求文档(二) 一:相机中的右边的预览窗口查看图片后选择删除,屏幕界面下方会有一条横线(去除横线的办法) (packages/apps/Gallery2/src/com/ ...

  5. Android 系统(157)---ODM 开发用户常见需求文档(八)

    一:信号图标,3G改为H,G改为E (frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/Telep ...

  6. Android 系统 (129)---ODM 开发用户常见需求文档(三)

    一:修改client ids (device/mediatek/common/device.mk) [java] view plaincopy diff --git a/mediatek/common ...

  7. Android 系统(145)---ODM 开发用户常见需求文档(七)

    一:相机连拍声音要比成像速度快 (vendor/mediatek/proprietary/packages/apps/Camera/src/com/mediatek/camera/util/Captu ...

  8. 【敏捷开发】从需求文档出发聊敏捷

    做这项调研的初心是什么? 需求文档解析成本太高,还存在高风险. RD解析一遍,QA解析一遍.而且还存在风险 让产品开发过程更加和谐,而不是紧张和对峙 需求的用户视角,非PM,RD视角 当自问心中的用户 ...

  9. 软件开发中的需求文档由谁来编写_使用 RStudio 中的 Rmarkdown 编写演示文档

    首先介绍一下 R 这个在数据分析和统计学中使用的非常广泛的一门语言: R 是一个数据分析.统计建模和作图的软件,它包含一门计算机语言称为 R 语言,R 语言与通常的 C.C++.Java 等编程语言相 ...

最新文章

  1. 【机器学习】信用卡欺诈检测|用启发式搜索优化XGBoost超参数
  2. HP proliant服务器从usb启动
  3. 分布式系统之消息队列
  4. js动态添加控件服务器响应,JS实现动态给标签控件添加事件的方法示例
  5. AI研究公司面试准备指南
  6. 【Level 08】U06 Good Feeling L1 End-of-season game
  7. P2P协议:我下小电影,99%急死你
  8. sql prompt linux,sqlplus中灵活使用sqlprompt提示符
  9. 数学建模的13种常用的方法
  10. 计算机网络第七版和课后答案百度网盘下载
  11. 九、障碍罚函数法---内点、外点罚函数
  12. MySQL的字符集和校对规则,你都会了吗?
  13. theano安装教程 linux,Ubuntu安装Theano+CUDA
  14. vim---操作命令大全
  15. PHP写的二维码签到,大家支持一下吧!
  16. C语言和C++语言中的泛型指针
  17. c语言提纲,C语言复习提纲
  18. 【oracle】oracle创建表、创建索引、创建自增id
  19. Linux基础:文件类型
  20. 如何修改:wq!无效时linux的readonly 标记的文档-修改liunx下mysql的慢日志查询开关。

热门文章

  1. Linux C语言操作MySQL
  2. 深入理解ARM体系架构(S3C6410)---PWM实例
  3. 基于平面 marker 的 Bundle Adjustmet
  4. QT5开发及实例学习之十Qt5主窗口构成
  5. 【小项目】SSM 实现单表 CRUD
  6. 进程调度 操作系统第二章知识点归纳总结
  7. java的四种修饰符访问权限
  8. 分页——SQL Server 对比 MySQL
  9. Virtual DOM 详解
  10. 【随机过程】随机过程之更新过程(2)