Android開發學習——打電話應用

來源:互聯網
上載者:User

標籤:撥號   允許   代碼   java代碼   add   電話   rri   method   9.png   

 

打電話應用

system/app/phone.apk  這個是打電話應用,這個Java API 不允許應用級程式員改寫,系統級才可以

system/app/dialer.apk  這個是撥號器應用,可以重寫一個第三方的撥號器

 

1.在res-layout-activity_main.xml裡定義布局:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2     xmlns:tools="http://schemas.android.com/tools" 3     android:layout_width="match_parent" 4     android:layout_height="match_parent" 5     android:paddingBottom="@dimen/activity_vertical_margin" 6     android:paddingLeft="@dimen/activity_horizontal_margin" 7     android:paddingRight="@dimen/activity_horizontal_margin" 8     android:paddingTop="@dimen/activity_vertical_margin" 9     tools:context=".MainActivity"10     android:orientation="vertical" >11     <TextView12         android:layout_width="wrap_content"13         android:layout_height="wrap_content"  // 組件必須設定寬高,否則不能通過編譯14         android:text="請輸入號碼:"15         />16     <EditText 17         android:layout_width="match_parent"18         android:layout_height="wrap_content"  19         android:id="@+id/et"     20         />21     <Button22          android:layout_width="match_parent"23          android:layout_height="wrap_content" 24          android:text="撥打"      25          android:id="@+id/bt"    // 如果要在java代碼中操作某個組件,則組件需要設定id,這樣才能在代碼中通過id拿到這個組件 26         />27 28 </LinearLayout>

2.src裡寫原始碼

 1 public class MainActivity extends Activity { 2  3     @Override 4     protected void onCreate(Bundle savedInstanceState) {  //App建立時調用由作業系統調用此方法 5         super.onCreate(savedInstanceState); 6         setContentView(R.layout.activity_main);       7         //給按鈕設定點擊監聽 8         //拿到按鈕對象 9         Button bt = (Button) findViewById(R.id.bt);      10         //設定監聽11         bt.setOnClickListener(new Myclick());12     }13 14     class Myclick implements OnClickListener{15         @Override16         public void onClick(View arg0) {17             // TODO Auto-generated method stub18             System.out.print("按鈕被點擊了");19             EditText et = (EditText) findViewById(R.id.et);20             String phone =  et.getText().toString();21             //在一個應用中啟動另一個應用,在撥號器應用裡啟動打電話應用
//Android系統中基於動作機制,來調用系統的應用,你告訴系統你想做什麼動作,系統就會把能做這個動作的應用給你,如果沒有這個應用,會拋異常
//設定動作,通過意圖告知系統
22 Intent intent = new Intent();23 intent.setAction(Intent.ACTION_CALL);//設定動作,打電話24 intent.setData(Uri.parse("tel:"+phone));25 startActivity(intent);//把意圖告訴系統26 }27 28 }29 30 31 }

3.添加許可權,在資訊清單檔裡,底下的permission-add-UsesPermission-右側的name進行選擇相應的許可權,在代碼中會自動產生,如下:

 <uses-permission android:name="android.permission.CALL_PHONE"/>

 

 

RunAs--AndroidApplication,運行結果如下:

 

 

補充一點:

事件監聽這個是常見的

點擊事件的四種寫法
第一種
* 定義一個MyListener實現onClickListener介面

        Button bt1 = (Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(new MyListener());

第二種
* 定義一個匿名內部類實現onClickListener介面

        Button bt2 = (Button) findViewById(R.id.bt2);
        bt2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                System.out.println("第二種");
                
            }
        });

第三種
* 讓當前activity實現onClickListener介面

        Button bt3 = (Button) findViewById(R.id.bt3);
        bt3.setOnClickListener(this);

第四種
* 給Button節點設定onClick屬性,

         android:onClick="click"
 
* 然後在activity中定義跟該屬性值同名的方法

        public void click(View v){
            System.out.println("第四種");
        }

 

Android開發學習——打電話應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.