调用android系统程序

http://blog.csdn.net/steven_zyz/article/details/6931604

1、调用飞行模式.

代码如下:

java代码:
protected void offLine(boolean setAirPlane) {
Settings.System.putInt(getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, setAirPlane ? 1 : 0);
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("TestCode", "ellic");
sendBroadcast(intent);
}


       我们可以通过AirPlaneModeOn = Settings.System.getInt(mContext.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) ==1? true:false;来判断手机是否处于飞行模式。

  然后分析下Android编程中调用系统程序的方法,调用系统程序最方便的就是直接通过Intent来激活,Intent真是个好东西,有空要再琢磨琢磨。用几个例子说明一下:

  2、调用系统邮件程序

java代码:
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);//建立Intent对象
emailIntent.setType(“plain/text”);//设置文本格式
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{}); //设置对方邮件地址
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, “Hello World!”);//设置标题内容
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, “It is body-Hello World!”);//设置邮件文本内容

startActivity(Intent.createChooser(emailIntent, “Sending mail…”));//启动一个新的ACTIVITY


      3、调用系统短信程序

java代码:
Uri uri = Uri.parse("smsto:0800000123");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it.putExtra("sms_body", "The SMS text");
startActivity(it);


      4、调用系统闹钟程序

这里需要说明的是调用系统闹钟程序要注意的地方,在不同的sdk不同classname不同,并且不同的厂商生产的Android也有可能不同,像在Motorola的Defy中,闹钟的classname是com.motorola.blur.alarmclock而不是 com.android.alarmclock.AlarmClock,所以就要相应的修改这个方法: public Intent setClassName (String packageName, String className).

java代码:
Intent intent = new Intent();
intent.setClassName(“com.android.alarmclock”, “com.android.alarmclock.AlarmClock”);
startActivity(intent);


5.调用打电话程序

这里需要说明的是inputstr是要拨打的电话号码。

java代码:

Intent phoneIntent= new Intern("android.intent.action.CALL",Uri.parse("tel"+inputstr);

startActivity(intent);


显示网页: 
    Uri uri = Uri.parse("http://www.google.com");
  Intent it = new Intent(Intent.ACTION_VIEW,uri);
  startActivity(it);
显示地图:
  Uri uri = Uri.parse("geo:38.899533,-77.036476");
  Intent it = new Intent(Intent.Action_VIEW,uri);
  startActivity(it);

路径规划:
   Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat startLng&daddr=endLat endLng&hl=en");
  Intent it = new Intent(Intent.ACTION_VIEW,URI);
  startActivity(it);

拨打电话:
  调用拨号程序 Uri uri = Uri.parse("tel:xxxxxx");
  Intent it = new Intent(Intent.ACTION_DIAL, uri);
  startActivity(it);

  Uri uri = Uri.parse("tel.xxxxxx");
  Intent it =new Intent(Intent.ACTION_CALL,uri);
  要使用这个必须在配置文件中加入

发送SMS/MMS:
  调用发送短信的程序 Intent it = new Intent(Intent.ACTION_VIEW);
  it.putExtra("sms_body", "The SMS text");
  it.setType("vnd.android-dir/mms-sms");
  startActivity(it);
  发送短信 Uri uri = Uri.parse("smsto:0800000123");
  Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  it.putExtra("sms_body", "The SMS text");
  startActivity(it);
  发送彩信 Uri uri = Uri.parse("content://media/external/images/media/23");
  Intent it = new Intent(Intent.ACTION_SEND);
  it.putExtra("sms_body", "some text");
  it.putExtra(Intent.EXTRA_STREAM, uri);
  it.setType("image/png");
  startActivity(it);

发送Email
  Uri uri = Uri.parse("mailto:xxx@abc.com");
  Intent it = new Intent(Intent.ACTION_SENDTO, uri);
  startActivity(it);

  Intent it = new Intent(Intent.ACTION_SEND); 
  it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");
  it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  it.setType("text/plain");
  startActivity(Intent.createChooser(it, "Choose Email Client"));

  Intent it=new Intent(Intent.ACTION_SEND);
  String[] tos={"me@abc.com"};
  String[] ccs={"you@abc.com"};
  it.putExtra(Intent.EXTRA_EMAIL, tos);
  it.putExtra(Intent.EXTRA_CC, ccs);
  it.putExtra(Intent.EXTRA_TEXT, "The email body text");
  it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  it.setType("message/rfc822");
  startActivity(Intent.createChooser(it, "Choose Email Client"));

添加附件
    Intent it= new Intent(Intent.ACTION_SEND);
  it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
  it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/mysong.mp3");
  sendIntent.setType("audio/mp3");
  startActivity(Intent.createChooser(it, "Choose Email Client"));

播放多媒体
  Intent it = new Intent(Intent.ACTION_VIEW);
  Uri uri = Uri.parse("file:///sdcard/song.mp3");
  it.setDataAndType(uri, "audio/mp3");
  startActivity(it);

  Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");
  Intent it = new Intent(Intent.ACTION_VIEW, uri);
  startActivity(it);

  Uninstall 程序 Uri uri = Uri.fromParts("package", strPackageName, null);
  Intent it = new Intent(Intent.ACTION_DELETE, uri);
  startActivity(it);
  sdk 文档 android_sdk/docs/guide/appendix/g-app-intents.html

一、打开一个网页,类别是Intent.ACTION_VIEW

  Uri uri = Uri.parse(“http://blog.3gstdy.com/”);

  Intent intent = new Intent(Intent.ACTION_VIEW, uri);

二、打开地图并定位到一个点

  Uri uri = Uri.parse(“geo:52.76,-79.0342″);

  Intent intent = new Intent(Intent.ACTION_VIEW, uri);

三、打开拨号界面 ,类型是Intent.ACTION_DIAL

  Uri uri = Uri.parse(“tel:10086″);

  Intent intent = new Intent(Intent.ACTION_DIAL, uri);

四、直接拨打电话,与三不同的是,这个直接拨打电话,而不是打开拨号界面

  Uri uri = Uri.parse(“tel:10086″);

  Intent intent = new Intent(Intent.ACTION_CALL, uri);

五、卸载一个应用,Intent的类别是Intent.ACTION_DELETE

  Uri uri = Uri.fromParts(“package”, “xxx”, null);

  Intent intent = new Intent(Intent.ACTION_DELETE, uri);

六、安装应用程序 ,Intent的类别是Intent.ACTION_PACKAGE_ADDED

  Uri uri = Uri.fromParts(“package”, “xxx”, null);

  Intent intent = new Intent(Intent.ACTION_PACKAGE_ADDED, uri);

七、播放音频文件

  Uri uri = Uri.parse(“file:///sdcard/download/everything.mp3″);

  Intent intent = new Intent(Intent.ACTION_VIEW, uri);

  intent.setType(“audio/mp3″);

八、打开发邮件界面

  Uri uri= Uri.parse(“mailto:admin@3gstdy.com”);

  Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

九、发邮件,与八不同这里是将邮件发送出去,

  Intent intent = new Intent(Intent.ACTION_SEND);

  String[] tos = { “admin@3gstdy.com ” };

  String[] ccs = { “webmaster@3gstdy.com ” };

  intent.putExtra(Intent.EXTRA_EMAIL, tos);

  intent.putExtra(Intent.EXTRA_CC, ccs);

  intent.putExtra(Intent.EXTRA_TEXT, “I come from http://blog.3gstdy.com ”);

  intent.putExtra(Intent.EXTRA_SUBJECT, “http://blog.3gstdy.com”);intent.setType(“message/rfc882″);

  Intent.createChooser(intent, “Choose Email Client”);

  //发送带附件的邮件

  Intent intent = new Intent(Intent.ACTION_SEND);

  intent.putExtra(Intent.EXTRA_SUBJECT, “The email subject text”);

  intent.putExtra(Intent.EXTRA_STREAM, “file:///sdcard/mysong.mp3″);

  intent.setType(“audio/mp3″);

  startActivity(Intent.createChooser(intent, “Choose Email Client”));

十、发短信

  Uri uri= Uri.parse(“tel:10086″);

  Intent intent = new Intent(Intent.ACTION_VIEW, uri);

  intent.putExtra(“sms_body”, “I come from http://blog.3gstdy.com ”);

  intent.setType(“vnd.Android -dir/mms-sms”);

 十一、直接发邮件

  Uri uri= Uri.parse(“smsto://100861″);

  Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

  intent.putExtra(“sms_body”, “3g android http://blog.3gstdy.com ”);

十二、发彩信

  Uri uri= Uri.parse(“content://media/external/images/media/23″);

  Intent intent = new Intent(Intent.ACTION_SEND);

  intent.putExtra(“sms_body”, “3g android http://blog.3gstdy.com ”);

  intent.putExtra(Intent.EXTRA_STREAM, uri);

  intent.setType(“image/png”);

十三、# Market 相关

  1 //寻找某个应用

  Uri uri = Uri.parse(“market://search?q=pname:pkg_name”);

  Intent it = new Intent(Intent.ACTION_VIEW, uri);

  startActivity(it);

  //where pkg_name is the full package path for an application

  2 //显示某个应用的相关信息

  Uri uri = Uri.parse(“market://details?id=app_id”);

  Intent it = new Intent(Intent.ACTION_VIEW, uri);

  startActivity(it);

  //where app_id is the application ID, find the ID

  //by clicking on your application on Market home

  //page, and notice the ID from the address bar

十四、路径规划

  Uri uri = Uri.parse(“http://maps.google .com/maps?f=d&saddr=startLat startLng&daddr=endLat endLng&hl=en”);

  Intent it = new Intent(Intent.ACTION_VIEW, uri);

  startActivity(it);

  //where startLat, startLng, endLat, endLng are a long with 6 decimals like: 50.123456


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com.example.tigongzhe; import android.R.integer; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.provider.SyncStateContract.Helpers; import android.text.Selection; import android.util.Log; public class provider extends ContentProvider { private MyOpenHelper myOpenHelper; private SQLiteDatabase sqLiteDatabase; private static final UriMatcher URI_MATCHER=new UriMatcher(UriMatcher.NO_MATCH); private final String TAG="provider"; private static final String authority="com.example.tigongzhe.provider"; static { URI_MATCHER.addURI(authority, "contacter", 1); URI_MATCHER.addURI(authority, "contacter/#", 2); } private static final String _id="id"; private static final String name="name"; private static final String num="num"; @Override public boolean onCreate() { // TODO Auto-generated method stub myOpenHelper=new MyOpenHelper(getContext(), DB_Name, null, version_1); return true; } @Override public String getType(Uri uri) { // TODO Auto-generated method stub int flag=URI_MATCHER.match(uri); switch (flag) { case 2: return "vnd.android.cursor.item/contacter"; case 1: return "vnd.android.dir.item/contacter"; default: throw new IllegalArgumentException("异常参数"); } } @Override public Uri insert(Uri uri, ContentValues values) { // TODO Auto-generated method stub sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: sqLiteDatabase.insert(Table_Name, name, values); break; case 2: long id=sqLiteDatabase.insert(Table_Name, name, values); ContentUris.withAppendedId(uri, id); default: break; } return uri; } @Override public Cursor query(Uri uri, String[] arg1, String arg2, String[] arg3, String arg4) { // TODO Auto-generated method stub Cursor cursor; sqLiteDatabase=myOpenHelper.getReadableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: cursor=sqLiteDatabase.query(Table_Name, arg1, arg2, arg3, null, null,arg4); break; case 2: long id=ContentUris.parseId(uri); arg2=(arg2==null||"".equals(arg2.trim()))? _id+"="+id:arg2+"and"+_id+"="+id; cursor=sqLiteDatabase.query(Table_Name, arg1, arg2, arg3, null, null,arg4); default: throw new IllegalArgumentException("参数错误"); } return cursor; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { // TODO Auto-generated method stub int num=0; sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: num=sqLiteDatabase.update(Table_Name, values,selection, selectionArgs); break; case 2: long id=ContentUris.parseId(uri); selection=(selection==null||"".equals(selection.trim()))? _id+"="+id:selection+"and"+_id+"="+id; num=sqLiteDatabase.update(Table_Name, values,selection, selectionArgs); default: break; } return num; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { // TODO Auto-generated method stub int num=0; sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: num=sqLiteDatabase.delete(Table_Name, selection, selectionArgs); break; case 2: long id=ContentUris.parseId(uri); selection=(selection==null||"".equals(selection.trim()))?_id+"="+id:selection+"and"+_id+"="+id; num=sqLiteDatabase.delete(Table_Name, selection, selectionArgs); default: throw new IllegalArgumentException("异常参数"); } return num; } private final String DB_Name = "mydb.db"; private final String Table_Name="contacter"; private final int version_1=1; private class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /** * @description 当数据表无连接时创建新的表 */ @Override public void onCreate(SQLiteDatabase db) { String sql = " create table if not exists " + Table_Name + "(id INTEGER PRIMARY KEY AUTOINCREMENT," + "name varchar(64),num varchar(64))"; db.execSQL(sql); } /** * @description 当版本更新时触发的方法 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = " drop table if exists " + Table_Name; db.execSQL(sql); onCreate(db); } } } +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.tigongzhe" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.tigongzhe.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name=".provider" android:authorities="com.example.tigongzhe.provider" android:multiprocess="true" android:exported="true" android:permission="com.example.tigongzhe.permission" ></provider> </application> <permission android:name="com.example.tigongzhe.permission" android:protectionLevel="normal"></permission> </manifest> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++package com.example.tigongzhe; import android.R.integer; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.provider.SyncStateContract.Helpers; import android.text.Selection; import android.util.Log; public class provider extends ContentProvider { private MyOpenHelper myOpenHelper; private SQLiteDatabase sqLiteDatabase; private static final UriMatcher URI_MATCHER=new UriMatcher(UriMatcher.NO_MATCH); private final String TAG="provider"; private static final String authority="com.example.tigongzhe.provider"; static { URI_MATCHER.addURI(authority, "contacter", 1); URI_MATCHER.addURI(authority, "contacter/#", 2); } private static final String _id="id"; private static final String name="name"; private static final String num="num"; @Override public boolean onCreate() { // TODO Auto-generated method stub myOpenHelper=new MyOpenHelper(getContext(), DB_Name, null, version_1); return true; } @Override public String getType(Uri uri) { // TODO Auto-generated method stub int flag=URI_MATCHER.match(uri); switch (flag) { case 2: return "vnd.android.cursor.item/contacter"; case 1: return "vnd.android.dir.item/contacter"; default: throw new IllegalArgumentException("异常参数"); } } @Override public Uri insert(Uri uri, ContentValues values) { // TODO Auto-generated method stub sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: sqLiteDatabase.insert(Table_Name, name, values); break; case 2: long id=sqLiteDatabase.insert(Table_Name, name, values); ContentUris.withAppendedId(uri, id); default: break; } return uri; } @Override public Cursor query(Uri uri, String[] arg1, String arg2, String[] arg3, String arg4) { // TODO Auto-generated method stub Cursor cursor; sqLiteDatabase=myOpenHelper.getReadableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: cursor=sqLiteDatabase.query(Table_Name, arg1, arg2, arg3, null, null,arg4); break; case 2: long id=ContentUris.parseId(uri); arg2=(arg2==null||"".equals(arg2.trim()))? _id+"="+id:arg2+"and"+_id+"="+id; cursor=sqLiteDatabase.query(Table_Name, arg1, arg2, arg3, null, null,arg4); default: throw new IllegalArgumentException("参数错误"); } return cursor; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { // TODO Auto-generated method stub int num=0; sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: num=sqLiteDatabase.update(Table_Name, values,selection, selectionArgs); break; case 2: long id=ContentUris.parseId(uri); selection=(selection==null||"".equals(selection.trim()))? _id+"="+id:selection+"and"+_id+"="+id; num=sqLiteDatabase.update(Table_Name, values,selection, selectionArgs); default: break; } return num; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { // TODO Auto-generated method stub int num=0; sqLiteDatabase=myOpenHelper.getWritableDatabase(); int flag=URI_MATCHER.match(uri); switch (flag) { case 1: num=sqLiteDatabase.delete(Table_Name, selection, selectionArgs); break; case 2: long id=ContentUris.parseId(uri); selection=(selection==null||"".equals(selection.trim()))?_id+"="+id:selection+"and"+_id+"="+id; num=sqLiteDatabase.delete(Table_Name, selection, selectionArgs); default: throw new IllegalArgumentException("异常参数"); } return num; } private final String DB_Name = "mydb.db"; private final String Table_Name="contacter"; private final int version_1=1; private class MyOpenHelper extends SQLiteOpenHelper { public MyOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /** * @description 当数据表无连接时创建新的表 */ @Override public void onCreate(SQLiteDatabase db) { String sql = " create table if not exists " + Table_Name + "(id INTEGER PRIMARY KEY AUTOINCREMENT," + "name varchar(64),num varchar(64))"; db.execSQL(sql); } /** * @description 当版本更新时触发的方法 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = " drop table if exists " + Table_Name; db.execSQL(sql); onCreate(db); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值