传智播客--3G之目录结构说明,电话拔号器和短信发送器实现

Android开发刚刚没有多长时间,我们就能学习这么前沿的技术.真的是太高兴了.呵呵,一定要好好学.这门课是由大牛黎活明老师讲的,这更加让我期 待.
今天是3G开发的第一天的课,主要学习了环境的搭建.熟悉Android的开发环境.和两个通过调用系统提供的服务来完成电话拨号和发送短信 的小程序.别看这两个程序小,在实际开发中会经常使用到.如在我们做的程序中,显示用户信息等,并直接点击拨打,就能给其拨打电话,而不用退出来输入号 码,很实用并且简单.

1.Android应用程序架构
src/ java原代码存放目录
gen/ 自 动生成目录
gen 目录中存放所有由 Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自 动根据你放入res目录的xml界面文件、图标与常量,同步更新修改 R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含 了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有 被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
res/ 资源(Resource)目录
存放应用使用到的各种资源,如xml界面文件,图片或数据。
AndroidManifest.xml 功能清单文件
列 出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。
当新添加一个 Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。
default.properties 项目环境信息,一般是不需要修改此文件
 
2.电话拔号器
1)AndroidManifest.xml中添加电话服务权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
2)界面布局
LinearLayout (线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、 FrameLayout(帧布局)
3)Activity:
为 按钮增加单击事件,在这个事件中添加处理事件的代码
在Android开发中,为了效率的考虑我们使用内部类会很多,这里就是经常会出现的一个地 方.
为按钮添加单击事件,并在事件中处理程序.
button.setOnClickListener(new View.On ClickListener(){
    public void on Click(View v) {
            EditText editText = (EditText)findViewById(R.id.mobile);
            Intent intent = new Intent(Intent.ACT ION_CALL, Uri.parse("tel:"+ editText.getText()));
            DialerAction.this.startActivity(intent);
    }
总结:
--findViewById(R.id.mobile) 根据ID取得相应的组件.
--Intent意图
--startActivity(intent)将意图通知系统.

3.短信发送器
1)AndroidManifest.xml 中添加短信服务权限:
<uses-permission android:name="android.permission.SEND_SMS"/>
2)界面布局
3)Activity
    String mobile = mobileView.getText().toString();
    String content = contentView.getText().toString();
    SmsManager smsManager = SmsManager.getDefault();
    PendingIntent sentIntent = PendingIntent.getBroadcast(SMSSender.this, 0, new Intent(), 0);
    if(content.length()>70){//如果字数超过70,需拆分成多条短信发送
                List<String> msgs = smsManager.divideMessage(content);
              for(String msg : msgs){
            smsManager.sendTextMessage(mobile, null, msg, sentIntent, null);
     //最后二个参数为短信已发送的广播意图,最后一个参数为短信对方已收到短信的广播意图
               }
    }else{                   
               smsManager.sendTextMessage(mobile, null, content, sentIntent, null);
    }
    Toast.makeText(SMSSender.this, "短信发送完成", Toast.LENGTH_LONG).show();
总结:
--使用系统服务的时候不要忘记在AndroidManifest.xml中添加服务权限
--短信服务在 这里,使用了SmsManager类,来操作.
--发送短信时要判断是否大于70个字
--Toast使用的时候,不要忘记show(). 要不然不会显示.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值