Android替换系统默认Mms与第三方短信切换

来源:互联网 发布:手机系统日志软件 编辑:程序博客网 时间:2024/05/18 00:31

现象,例如当我们切换Launcher的时候,默认短信与第三方的短信 会提示 是否设置当前为默认的短信应用,修改切换的时候替换默认短信不让其提示

\frameworks\opt\telephony\src\java\com\android\internal\telephony\ SmsApplication.java   /**     * Sets the specified package as the default SMS/MMS application. The caller of this method     * needs to have permission to set AppOps and write to secure settings.     */public static void setDefaultApplication(String packageName, Context context) {//系统执行函数package\apps\Settings…. SmsDefaultDialog.java@Override    public void onClick(DialogInterface dialog, int which) {        switch (which) {            case BUTTON_POSITIVE:                SmsApplication.setDefaultApplication(mNewSmsApplicationData.mPackageName, this);                setResult(RESULT_OK);                break;            case BUTTON_NEGATIVE:                break;        }    }在一个级别较高的应用中去定义一个广播去处理例如Settingsimport com.android.internal.telephony.SmsApplication;public class HomeDefaultReceiver extends BroadcastReceiver{  private static final String OLD_LAUNCHER_NAME="com.jeejen.family";private static final String DEFAULT_MMS="com.android.mms";@Overridepublic void onReceive(Context context, Intent intent) {String action=intent.getAction();if(action.equals("set_default_launcer_first")){   setDefaultMms(OLD_LAUNCHER_NAME,context);   }else if(action.equals("set_default_launcer_second")){   setDefaultMms(DEFAULT_MMS,context);}}private void setDefaultMms(String packeageName,Context context) {            SmsApplication.setDefaultApplication(packeageName, context);//替换关键       // setResult(RESULT_OK);       }





0 0
原创粉丝点击