怎么在第一个Activity打开第二个Activity?在一个Activity中打开另外一个Activity,实际上之前已经做过,就是电话拨号器。

package com.itheima.callnewactivity;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void call(View v){
Intent intent = new Intent();
//给意图设置一个动作
intent.setAction(Intent.ACTION_CALL);
//给意图设置数据
intent.setData(Uri.parse("tel:"+110));
//打开打电话的activity
startActivity(intent); } }
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="call"
android:text="@string/hello_world" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.callnewactivity"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.itheima.callnewactivity.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="call"
android:text="打电话" /> </RelativeLayout>

系统上层所有应用的源代码,实际上就是跟电话还有短信这些相关的。Browser是浏览器,Launcher2是桌面的这个应用。

实际上你最开始运行起来就是这个桌面,这个桌面对应的也是一个安卓应用。这个应用它的作用就是把其他的应用跑起来。

Mms是短信的,PackageInstaller是包安装器。咱们装应用的时候都会出来一个界面,这个界面介绍当前你装的东西是什么名字,会用到哪些权限,这个东西就是这个PackageInstaller。

Phone就是打电话的。

TelephonyProvider就是提供跟电话相关的一些信息。内容提供者相关。

Settings  设置的。


每调起一个应用默认都会在All messages(no filters)帮咱们打一个log,就是我调起来的是谁。

ActivityManager,通过它就可以看到我究竟都打开了哪一些应用。

 <activity android:name="OutgoingCallBroadcaster"
android:permission="android.permission.CALL_PHONE"
android:theme="@android:style/Theme.NoDisplay"
android:configChanges="orientation|keyboardHidden">
<!-- CALL action intent filters, for the various ways
of initiating an outgoing call. -->
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter android:icon="@drawable/ic_launcher_sip_call">
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sip" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity>

它声明了一个CALL_PHONE的权限,所以你调起这个activity的时候必须在你的应用申请对应的权限。

数据以tel开头和scheme对上了。


    <intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>

通过startActivity就可以把当前的这个intent-filter所对应的Activity给它打开。

PHONE这个系统上层的应用的源代码的清单文件是:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.phone"
android:sharedUserId="android.uid.phone"
android:sharedUserLabel="@string/dialerIconLabel"
> <original-package android:name="com.android.phone" /> <protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
<protected-broadcast android:name="android.intent.action.RADIO_TECHNOLOGY" />
<protected-broadcast android:name="android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED" />
<protected-broadcast android:name="android.intent.action.SIG_STR" />
<protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />
<protected-broadcast android:name="android.intent.action.DATA_CONNECTION_FAILED" />
<protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
<protected-broadcast android:name="android.intent.action.NETWORK_SET_TIME" />
<protected-broadcast android:name="android.intent.action.NETWORK_SET_TIMEZONE" />
<protected-broadcast android:name="android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
<protected-broadcast android:name="android.intent.action.ACTION_MDN_STATE_CHANGED" />
<protected-broadcast android:name="android.provider.Telephony.SPN_STRINGS_UPDATED" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" />
<uses-permission android:name="android.permission.ADD_SYSTEM_SERVICE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.STATUS_BAR" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_SMS"/>
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SHUTDOWN" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.BACKUP" />
<uses-permission android:name="android.permission.USE_SIP" /> <!-- This tells the activity manager to not delay any of our activity
start requests, even if they happen immediately after the user
presses home. -->
<uses-permission android:name="android.permission.STOP_APP_SWITCHES" /> <application android:name="PhoneApp"
android:persistent="true"
android:label="@string/dialerIconLabel"
android:icon="@drawable/ic_launcher_phone">
<provider android:name="IccProvider"
android:authorities="icc"
android:multiprocess="true"
android:readPermission="android.permission.READ_CONTACTS"
android:writePermission="android.permission.WRITE_CONTACTS" /> <!-- Dialer UI that only allows emergency calls -->
<activity android:name="EmergencyDialer"
android:label="@string/emergencyDialerIconLabel"
android:screenOrientation="nosensor">
<intent-filter>
<action android:name="com.android.phone.EmergencyDialer.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <activity android:name="ADNList" /> <activity android:name="SimContacts"
android:label="@string/simContacts_title"> <intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/sim-contact" />
</intent-filter>
</activity> <activity android:name="FdnList" android:label="@string/fdnListLabel">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/sim-contact" />
</intent-filter>
</activity> <activity android:name="OutgoingCallBroadcaster"
android:permission="android.permission.CALL_PHONE"
android:theme="@android:style/Theme.NoDisplay"
android:configChanges="orientation|keyboardHidden">
<!-- CALL action intent filters, for the various ways
of initiating an outgoing call. -->
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter android:icon="@drawable/ic_launcher_sip_call">
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sip" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity>
<activity-alias android:name="EmergencyOutgoingCallBroadcaster"
android:targetActivity="OutgoingCallBroadcaster"
android:permission="android.permission.CALL_PRIVILEGED"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.CALL_EMERGENCY" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter android:icon="@drawable/ic_launcher_sip_call">
<action android:name="android.intent.action.CALL_EMERGENCY" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sip" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_EMERGENCY" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_EMERGENCY" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity-alias> <activity-alias android:name="PrivilegedOutgoingCallBroadcaster"
android:targetActivity="OutgoingCallBroadcaster"
android:theme="@android:style/Theme.NoDisplay"
android:permission="android.permission.CALL_PRIVILEGED">
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter android:icon="@drawable/ic_launcher_sip_call">
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sip" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity-alias> <receiver android:name="ProcessOutgoingCallTest" android:exported="false"
android:enabled="false">
<intent-filter android:priority="1">
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver> <activity android:name="InCallScreen"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/phoneIconLabel"
android:excludeFromRecents="true"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|uiMode"
android:exported="false">
</activity> <activity android:name="InCallScreenShowActivation"
android:permission="android.permission.PERFORM_CDMA_PROVISIONING"
android:label="@string/phoneIconLabel"
android:excludeFromRecents="true">
<intent-filter>
<action android:name="com.android.phone.InCallScreen.SHOW_ACTIVATION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <!-- general settings -->
<activity android:name="Settings" android:label="@string/settings_label">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.DATA_ROAMING_SETTINGS" />
</intent-filter>
</activity> <!-- networks setting -->
<!-- service to handle network query requests sent to RIL -->
<service android:name="NetworkQueryService" /> <activity android:name="NetworkSetting"
android:label="@string/networks"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.NETWORK_OPERATOR_" />
</intent-filter>
</activity> <activity android:name="GsmUmtsOptions"
android:label="@string/gsm_umts_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="CdmaOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="GsmUmtsCallOptions"
android:label="@string/gsm_umts_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="GsmUmtsCallForwardOptions"
android:label="@string/labelCF"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="GsmUmtsAdditionalCallOptions"
android:label="@string/labelGSMMore"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="CellBroadcastSms"
android:label="@string/cell_broadcast_sms">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <!-- fdn setting -->
<activity android:name="FdnSetting" android:label="@string/fdn">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <activity android:name="EnableFdnScreen" android:label="">
</activity> <!-- SIM PIN setting -->
<activity android:name="EnableIccPinScreen" android:label="@string/enable_pin">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
</intent-filter>
</activity> <activity android:name="ChangeIccPinScreen" android:label="@string/change_pin">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
</intent-filter>
</activity> <activity android:name="GetPin2Screen" android:label="@string/get_pin2"
android:windowSoftInputMode="stateVisible">
</activity> <activity android:name="EditFdnContactScreen"
android:windowSoftInputMode="stateVisible">
</activity> <activity android:name="DeleteFdnContactScreen"
android:label="@string/delete_fdn_contact">
</activity> <activity android:name="DataRoamingReenable" android:label="@string/android:dialog_alert_title"
android:theme="@android:style/Theme.Dialog">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <!-- Data usage and throttling setting -->
<activity android:name="DataUsage"
android:label="@string/throttle_data_usage">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <!-- data roaming setting -->
<activity android:name="RoamingSetting" android:label="@string/roaming">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity> <!-- call feature setting -->
<activity android:name="CallFeaturesSetting" android:label="@string/call_settings"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />
<action android:name="com.android.phone.CallFeaturesSetting.ADD_VOICEMAIL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <!-- emergency call handler, coordinates emergency calls -->
<activity android:name="EmergencyCallHandler" android:label="@string/phoneIconLabel"
android:excludeFromRecents="true"
android:launchMode="singleInstance">
</activity> <!-- bluetooth headset service -->
<service android:name="BluetoothHeadsetService">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHeadset" />
</intent-filter>
</service> <!-- Broadcast Receiver that will process BOOT Complete and launch OTA -->
<receiver android:name="OtaStartupReceiver" android:exported="false">
<intent-filter android:priority="100">
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver> <!-- CDMA Emergency Callback Mode -->
<service android:name="EmergencyCallbackModeService">
</service> <activity android:name="EmergencyCallbackModeExitDialog"
android:excludeFromRecents="true"
android:label="@string/ecm_exit_dialog"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG" />
<action android:name="android.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <receiver android:name="SipBroadcastReceiver">
<intent-filter>
<action android:name="com.android.phone.SIP_INCOMING_CALL" />
<action android:name="com.android.phone.SIP_ADD_PHONE" />
<action android:name="com.android.phone.SIP_REMOVE_PHONE" />
<action android:name="android.net.sip.SIP_SERVICE_UP" />
</intent-filter>
</receiver> <activity android:label="Sip Settings"
android:name=".sip.SipSettings"
android:launchMode="singleTop"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.net.sip.NOTIFY" />
</intent-filter>
</activity>
<activity android:name=".sip.SipEditor"
android:configChanges="orientation|keyboardHidden">
</activity>
<activity android:name=".SipCallOptionHandler"
android:configChanges="orientation|keyboardHidden">
</activity> </application>
</manifest>

最新文章

  1. [LeetCode] Implement strStr() 实现strStr()函数
  2. vs.net Web.csproj.webinfo文件
  3. 配置tomcat解压版
  4. 实现Android包的批量删除
  5. IOS程序常用目录
  6. koa redis 链接
  7. Linux 内存管理子系统
  8. 如何自学java迅速成为java高手
  9. 用Setup系列函数完成驱动卸载安装[驱动安装卸载程序]
  10. 如何给Ubuntu 安装Vmware Tools
  11. 在阿里云上布置git server
  12. vue-cli中父子组件间的变量传递
  13. 封装bootstrap-treegrid组件
  14. maven依赖问题
  15. PV IP UV
  16. Go语言的核心Routine-Channel
  17. 联想G510F1F2..功能键和FN+功能键反过来
  18. VirtualBox中安装CentOS 7_Linux
  19. 基于OpenSSL的HTTPS通信C++实现
  20. Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误

热门文章

  1. Separate code and data contexts: an architectural approach to virtual text sharing
  2. windows下的asp.net core开发及docker下的发布
  3. 洛谷——P3353 在你窗外闪耀的星星
  4. union关键字和字节大小端序的确定
  5. PCRE函数简介和使用示例
  6. PLSQL安装资料
  7. SqlSugar最容易使用的ORM
  8. ZXing-core生成二维码和解析
  9. jQuery选择器特殊字符与属性空格问题
  10. JavaScript学习14:表单处理