Chinaunix首页 | 论坛 | 博客
  • 博客访问: 470879
  • 博文数量: 120
  • 博客积分: 3052
  • 博客等级: 中校
  • 技术积分: 1755
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-01 09:43
文章分类

全部博文(120)

文章存档

2011年(20)

2010年(3)

2009年(52)

2008年(45)

我的朋友

分类: 嵌入式

2009-10-08 11:16:31

在 android 中,dial 是指按号码,而 call 是指按打电话的键,呵。

intent 是不错,可是书上和现实中问题还是有的。
按书的写法,提示错误,有些符号找不到。

书上给的源代码是:
Intent dialIntent = new Intent(Intent.DIAL_ACTION,Uri.parse("tel:13591996687"));

dialIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH);

提示说 DIAL_ACTION, setLanuchFlags, NEW_TASK_LAUNCH 这三个符号找不到。
我怀疑是 api 改变了。

于是解开 android-sdk 的压缩包,从其中的 doc 目录中找到了 index.html 来看文档。果然。

这三个“符号”分别变成了
ACTION_DIAL
setFlags
FLAG_ACTIVITY_NEW_TASK

于是最终代码变成
---------------------
package cn.cublog.drunkedcat;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.net.Uri;

public class calls extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:13591996687"));
    dialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(dialIntent);

    }
}
-----------------------------------------------
这个就可以用了。
但是只能 dial ,不能 call.
要想 call 的话,要把 ACTION_DIAL 改成 ACTION_CALL, 并且给 activity 加上相应的权限才行。
加权限的做法是,修改 AndroidManifest.xml 文件,
这个主体中 标签后,加上一个新的标签,叫 详细的内容是:


注意,要用相应的 permission
然后重新编译(也就是 ant debug 之),就可以了。
我在想,显示图片那个是不是也是这个问题呢?
查查看。
阅读(1488) | 评论(0) | 转发(0) |
0

上一篇:android -- Intent

下一篇:android--更好的教材

给主人留下些什么吧!~~