使用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>
PDF    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply