android使用Intent操作拨打号码发送短信
Activity程序Activity.java
packagecom.example.intentcaseproject;
importandroid.net.Uri;
importandroid.os.Bundle;
importandroid.provider.ContactsContract;
importandroid.app.Activity;
importandroid.content.ContentUris;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
privateButtonmybut=null;
privateEditTexttel=null;
privateEditTextcontent=null;
privateButtonaddbut=null;
privateButtontelbut=null;
privatestaticfinalintPICK_CONTEACT_SUBACTIVITY=1;//自定义操作标记
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
this.mybut=(Button)super.findViewById(R.id.mybut);//取得组件
this.tel=(EditText)super.findViewById(R.id.tel);//取得组件
this.content=(EditText)super.findViewById(R.id.content);//取得组件
this.addbut=(Button)super.findViewById(R.id.addbut);//取得组件
this.telbut=(Button)super.findViewById(R.id.telbut);//取得组件
this.mybut.setOnClickListener(newOnClickListenerlmpl());//设置发送短信按钮事件
this.addbut.setOnClickListener(newContactsOnClickListener());//设置查找联系按钮事件
this.telbut.setOnClickListener(newTelClickListener());//设置拨打电话号码事件
}
privateclassTelClickListenerimplementsOnClickListener{//拨号按钮
@Override
publicvoidonClick(Viewv){
StringtelStr=MainActivity.this.tel.getText().toString();//获取电话号码
Uriuri=Uri.parse("tel:"+telStr);//拨打电话号码的URI格式
Intentit=newIntent();//实例化Intent
it.setAction(Intent.ACTION_CALL);//指定Action
it.setData(uri);//设置数据
MainActivity.this.startActivity(it);//启动Acitivity
}
}
privateclassContactsOnClickListenerimplementsOnClickListener{//联系人查找按钮+
@Override
publicvoidonClick(Viewarg0){
Uriuri=Uri.parse("content://contacts/people");//连接URi
Intentit=newIntent(Intent.ACTION_PICK,uri);//指定Intent
MainActivity.this.startActivityForResult(it,PICK_CONTEACT_SUBACTIVITY);//调用Intent
}
}
@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
switch(requestCode){
casePICK_CONTEACT_SUBACTIVITY://接受返回数据
Uriret=data.getData();//单个数据的URI
Stringselection=ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?";//查询条件
String[]selectionArgs={String.valueOf(ContentUris.parseId(ret))};//查询参数
Cursorresult=super.managedQuery(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,selection,selectionArgs,null);//查询该联系人的全部号码
for(result.moveToFirst();!result.isAfterLast();result.moveToNext()){//循环取出号码
MainActivity.this.tel.setText(//设置到文本框中
result.getString(
result.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
break;
}
}
privateclassOnClickListenerlmplimplementsOnClickListener{//发送短信按钮
@Override
publicvoidonClick(Viewv){
StringtelStr=MainActivity.this.tel.getText().toString();//取出电话号码
Stringnote=MainActivity.this.content.getText().toString();//取出短信内容
Uriuri=Uri.parse("smsto:"+telStr);//指定路径
Intentit=newIntent();//实例化Intent
it.setAction(Intent.ACTION_SENDTO);//指定Action
it.putExtra("sms_body",note);
it.setType("vnd.android-dir/mms-sms");
it.setData(uri);//设置数据
MainActivity.this.startActivity(it);//启动Activity
}
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}
界面配置文件,采用线性布局内嵌表格布局activity_mian.xml
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<TextView
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="号码:"/>
<EditText
android:id="@+id/tel"
android:layout_width="260px"
android:layout_height="wrap_content"
android:numeric="integer"/>
<Button
android:id="@+id/addbut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"/>
</TableRow>
<TableRow>
<TextView
android:layout_width="90px"
android:layout_height="wrap_content"
android:text="内容:"/>
<EditText
android:id="@+id/content"
android:layout_width="260px"
android:layout_height="wrap_content"
android:gravity="top"
android:lines="6"/>
</TableRow>
</TableLayout>
<LinearLayout
android:orientation="horizontal"
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/mybut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送短信"/>
<Button
android:id="@+id/telbut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"/>
</LinearLayout>
</LinearLayout>
权限设置AndroidManifest.xml
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.intentcaseproject"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.example.intentcaseproject.MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<uses-permissionandroid:name="android.permission.READ_CONTACTS"/>
</manifest>
更多相关文章
- Android中子线程网络查看器与Handler消息处理器
- Android字体设置
- Android中LayoutParams的用法
- Android(安卓)Http请求框架一:Get 和 Post 请求
- Android保持屏幕常亮的方法总结
- Android如何使用selector设置RelativeLayout的背景
- Android(安卓)Glide设置图片圆角,亲测有效
- Android(安卓)ViewGroup系列控件的使用
- Android动态设置View的位置和大小