要设为系统默认的短信应用首先要配置一下AndroidManifest.xml文件,添加下列:
<!-- BroadcastReceiver that listens for incoming SMS messages —>
</intent-filter>
<!-- BroadcastReceiver that listens for incoming MMS messages —>
</intent-filter>
<!-- Activity that allows the user to send new SMS/MMS messages —>
</intent-filter>
<!-- Service that delivers messages from the phone “quick response” —>
</intent-filter>
其中ComposeSmsActivity.activity可以作为启动的Activity,我的是将Main.activity作为启动Activity的,那就要用Main.activity代替ComposeSmsActivity.activity了,如下:
至于SmsReceiver,MmsReceiver还继承BroadcastReceiver的广播,HeadlessSmsSendService是继承Service的服务,把这几个文件创建出来就可以了,暂时不用做什么操作 设为系统默认短信的关键在ComposeSmsActivity.activity中,如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
String defaultSmsApp = null;
String currentPn = getPackageName();//获取当前程序包名
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT)
{
defaultSmsApp = Telephony.Sms.getDefaultSmsPackage(this);//获取手机当前设置的默认短信应用的包名
}
if (!defaultSmsApp.equals(currentPn)) {
Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, currentPn);
startActivity(intent);
}
}