標籤:撥號 允許 代碼 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開發學習——打電話應用