意图操作----意图操作----程序调用系统固件

本文介绍了如何在Android应用中使用Intent来实现多种功能,如拍照、浏览网页、发送短信等。通过具体的代码实例展示了Intent的多种用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所谓意图操作,就是指在应用程序中通过Intent调用系统应用程序的组件,例如打开相机、浏览器,收发短信等等,下面列出了常用的意图机制:

1、 使用相机

android.provider.MediaStore.ACTION_IMAGE_CAPTURE

在应用程序中添加相机功能的方式很多,您可以直接在应用程序中使用相机(并赋予用程序合适的权限),也可以使用意图机制启动其他提供相机功能的应用程序,从而将现有的相机支持能共集成到应用中其中第二种方法最简单也最常用,所以这里只说第二种方法。

当前,在应用程序中包含拍照功能最简单方式是,使用android.provider.MediaStore类定义的意图ACTION_IMAGE_CAPTURE。这个意图可以用于启动相机、拍摄照片并返回照片信息。

具体代码如下:

ImageView imageView;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

imageView = (ImageView)findViewById(R.id.imageView);

}

@Override

public boolean onOptionsItemSelected(MenuItem item)

{

switch (item.getItemId())

{

case R.id.action_exit:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, R.string.exti);

break;

}

return super.onOptionsItemSelected(item);

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data)

{

super.onActivityResult(requestCode, resultCode, data);

Toast.makeText(getApplicationContext(), requestCode + "/" + resultCode, Toast.LENGTH_SHORT).show();

switch (requestCode)

{

case R.string.exti:

Toast.makeText(getApplicationContext(), requestCode + "/" + resultCode, Toast.LENGTH_SHORT).show();

Bitmap bitmap = (Bitmap)data.getExtras().get("data");

imageView.setImageBitmap(bitmap);

break;

}

}

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

Uri uri = URI.parse(“http://blog.youkuaiyun.com/zhai56565”);

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

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

Uri uri = Uri.parse(“geo:34.34 , 108.108”);

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

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

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

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

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

Uri uri = Uri.parse(“tell:10086”);

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

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

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

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

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

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

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

8、 播放音频文件

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

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

Intent.setType(“audio/mp3”);

9、 打开发邮件界面

Uri uri = Uri.parse(“mailto:413672141@qq.com”);

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

10、发邮件,与上面不同的是这里将邮件发送出去

Intent intent = new Intent(Intent.ACTION_SEND);

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

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

intent.putExtra(Intent.EXTRA_EMAIL , tos);

intent.putExtra(Intent.EXTRA_CC , ccs);

intent.putExtra(Intent.EXTRA_TEXT , “I come from 413672141@qq.com”);

intent.putExtra(Intent.EXTRA_SUBJECT , “413672141@qq.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”));

11、跳转到发短信页面

Uri uri = Uri.parse(“tell:10086”);

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

intent.putExtra(“sms_body” , “I come from 413672141@qq.com”);

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

12、直接发短信

Uri uri = Uri.parse(“smsto://10086”);

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

Intent.putExtra(“sms_body” , “我的博客是:413672141@qq.com”);

13、发彩信

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

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(“sms_body” . “我的博客是:413672141@qq.com”);

intent.putExtra(Intent.EXTRA_STREAM , uri);

intent.setType;

14、寻找Market相关:

1)、寻找某个应用

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

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

startActivity(intent);

//pkg_name是应用程序包的完整路径

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

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

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

startActivity(intent);

//app_id是应用程序的ID

15、路径规划

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

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

startActivity(intent);

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

16、使用图库,Intent.action.PICK

Intent pickPhoto = new Intent(Intent.ACTION_PICK);

pickPhoto.setType(“image/*”);

startActivityForResult(pickPhoto , TAKE_AVATAR_GALLERY_REQUEST);

在返回方法onActivityResult()中,从Intent参数data中获取Uri,然后使用Media类(MediaStore.Images.Media)的方法getBitmap(),获取Bitmap对象:

Uri uri = data.getData();

Bitmap bitmap = Media.getBitmap(getContentResolver() , uri);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值