有时候我们程序需要添加连到到其它应用程序中,比如做一个定时发送短信的程序,想在联系人应用程序中选择send SMS/MMS时,出现我们自己的程序让用户选择是否发送定时短信。
要实现这种效果要用到intent-filter,关于intent-filter觉得写的最形象的一篇文章是http://www.roiding.com/index.php/archives/tag/intent-filter
俺是一个只会蛮干的粗人,理论在这就不多说,直接上代码。以后贴的代码都是在G1实机测试通过。
以上面那个在联系人应用程序中选择send SMS/MMS时,出现我们自己的程序让用户选择是否发送定时短信的效果为例,首先在我们需要接收短信程序发送过来的数据(如联系人的手机号码)的Acitivity中添加一个intent-filter
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
</intent-filter>
然后在Activity中用下面代码取得联系人APP传过来的用户手机号码
Intent intent = getIntent();
if (Intent.ACTION_SENDTO.equals(intent.getAction())) {
Uri uri = intent.getData();
if ("sms".equals(uri.getScheme()) || "smsto".equals(uri.getScheme())) {
Bundle bundle = intent.getExtras();
String dest = uri.getSchemeSpecificPart();
// dest就是联系人的手机号码了
}
}
目前没有留言,等您坐沙发呢!