zoukankan      html  css  js  c++  java
  • Android-隐式意图激活操作系统通话界面

    阅读Android操作系统的 packages/apps/phone/AndroidManifest.xml,是如何暴露的

      AndroidManifest.xml

      

    Android操作系统在这里明确指定要这个权限:


    我的应用去隐式意图激活,Android操作系统的 packages/apps/phone/ 

     

    现在知道为什么,一定要在AndroidManifest.xml里面配置权限了吧

      <!--
            Android操作系统的 packages/apps/phone/AndroidManifest.xml 
            明确指定要打电话权限 android:permission="android.permission.CALL_PHONE"
        -->
        <uses-permission android:name="android.permission.CALL_PHONE" />

    现在知道为什么,一定要这样才能激活 Android操作系统的 packages/apps/phone/ 通话功能了吧 

    Android操作系统 packages/assp/phone/ 暴露了很多 intent-filter,随意匹配一个intent-filter 就可以了,那就匹配下面的intent-filter 

        <!-- CALL action intent filters, for the various ways 
                of initiationg 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> 

    Android操作系统 packages/assp/phone/AndroidManifest.xml/打电话相关 是怎么去intent-filter暴露的,我就怎么去激活

      /**
         * 隐式意图方式激活
         * 激活操作系统通话界面
         * @param view
         */
        public void startCall(View view) {
            /**
             * Android操作系统的 packages/apps/phone/AndroidManifest.xml 是这样暴露的
             *          <!-- CALL action intent filters, for the various ways of initiationg 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 intent = new Intent();
            intent.setAction("android.intent.action.CALL");
            // 在这里为什么不需要设置:category android:name="android.intent.category.DEFAULT",因为在startActivity会自动添加
            intent.setData(Uri.parse("tel:1345678977")); // 必须要加 :
            startActivity(intent);
        }

    效果图:

  • 相关阅读:
    SQL 2008R2问题:用户、组或角色'XXX'在当前数据库中已存在?
    修改sqlserver 2008 R2 实例名称
    keepalived vip做网关
    Django(HttpResponse、render,、redirect)的用法
    Linux脚本中$#、$0、$1、$@、$*、$$、$?
    linux定时删除历史日志文件实现方式--shell脚本
    Long转换为date
    java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
    2016年新年伊始
    linux下环境搭建
  • 原文地址:https://www.cnblogs.com/android-deli/p/10135410.html
Copyright © 2011-2022 走看看