通过Intent 打开系统级应用

来源:互联网 发布:淘宝回购率权重 编辑:程序博客网 时间:2024/05/20 16:45

最近在做关于Android 手机桌面的应用,具体内容和功能暂且不说,主要用到了要通过Intent 打开系统级的软件。众所周知,各个手机厂商由于对Android 原生系统定制的原因,会造成系统级应用packname 和activityname 不同的现象,就拿时钟软件来说,魅族2的activityname 是【com.android.alarmclock.AlarmClock】,而HTC One 的则是【com.htc.android.worldclock.WorldClockTabControl】,所以就要使用隐式的Intent 来打开所需的软件(如时钟)。

下面将介绍不是特别常用的三个应用的Intent 打开方式:

1)Clock

intent = new Intent(AlarmClock.ACTION_SET_ALARM);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

2)Calendar

long startMillis = System.currentTimeMillis();Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();builder.appendPath("time");ContentUris.appendId(builder, startMillis);intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());

3)Gallery(*)

intent = new Intent(Intent.ACTION_VIEW, Uri.parse(MediaStore.Images.Media.INTERNAL_CONTENT_URI.toString()));
关于实现这个功能,本人是费了九牛二虎之力......到网上搜,同学们的大致解决方案无外乎两种,
第一种:
intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
第二种:
intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);
以上两种是可以实现打开gallery 的功能,但使用过后就会发现存在一个严重的问题:用户可以打开gallery 应用,也可以进入应用中的相册,但是当你点击相册中的图片查看时gallery 就会自动退出,大家如果也有这个功能的需求,直接使用最上面的那种方式即可,本人亲测,暂时未发现什么问题。

其实,系统级的应用还有很多,比如照相机、浏览器、拨号器等等,我这里找到一个比较全的方式以打开不同的应用,链接如下:
http://blog.csdn.net/zhiying201039/article/details/6611000




0 0
原创粉丝点击