使用intent的应用
如果想直接拨号打电话,可以在java代码中这样调用:
Uri uri = Uri.parse("tel:15210133973"); Intent intent = new Intent(Intent.ACTION_CALL, uri); this.startActivity(intent);
然后在AndroidManifest.xml中增加拨号的权限:
<uses-permission android:name=”android.permission.CALL_PHONE” />
如果是想弹出拨号窗口,java代码应改为:
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
如果是发送短信,比如不需用户干预发送一条短信,java代码如下:
PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, this.getClass()), 0); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNumber, null, message, pi, null);
需要在AndroidManifest.xml文件中设置权限:
<uses-permission android:name=”android.permission.SEND_SMS” />
如果需要对收到的短信做额外的监控和记录,java代码如下:
package com.easymorse; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.gsm.SmsMessage; import android.widget.Toast; public class SmsReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i = 0; i < msgs.length; i++) { msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); str += "SMS from " + msgs[i].getOriginatingAddress(); str += " :"; str += msgs[i].getMessageBody().toString(); str += "\n"; } } Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); } }
需要在AndroidManifest.xml文件中设置Receiver,当短信到达会通知这个Receiver。
<receiver android:name=".SmsReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> </application>
这篇文章上的评论的 RSS feed TrackBack URI