精华内容
下载资源
问答
  • ITelephony.aidl 文件

    2021-05-22 04:00:15
    ITelephony.aidl 文件 ITelephony.aidl 文件 ITelephony.aidl 文件 ITelephony.aidl 文件
  • NeighboringCellInfo.aidl和ITelephony.aidl二合一,做手机通讯方面app的同学,可以看看!
  • ITelephony2.2版本文件

    2018-01-04 15:05:50
    挂电话需要用到系统的ITelephony类,但是Google从Android2.1 SDK版本后,屏蔽了ITelephony类,在此附上2.2版本 ITelephony.aidl文件
  • ITelephony.aidl

    2014-12-22 21:30:06
    资源描述:ITelephony.aidl
  • ITelephony的使用

    2015-07-30 22:00:56
    1、在项目src中建立包:... 2、该路径下,新建文件:ITelephony.aidl 3、在2中文件中写入如下内容:  package com.android.internal.telephony;     interface ITelephony {   //此处写你要用的

    1、在项目src中建立包:com.andorid.internal.telephony

    2、该路径下,新建文件:ITelephony.aidl

    3、在2中文件中写入如下内容:

            package com.android.internal.telephony; 

            

           interface ITelephony { 

          //此处写你要用的接口,如endcall....

           }

    4、调用方法如下:


            try {


          Method getITelephonyMethod = TelephonyManager.class.getDeclaredMethod("getITelephony", (Class[]) null);


          getITelephonyMethod.setAccessible(true);


          iTelephony = (ITelephony) getITelephonyMethod.invoke(telephonyManager, (Object[]) null);


          iTelephony.(你要使用的接口,如endcall)
          
       


            } catch (Exception e) {


             e.printStackTrace();


             System.out.println(e.getMessage());


            }

    展开全文
  • ITelephony.aidl NeighboringCellInfo.aidl
  • 学习传智播客的手机安全卫士用到的aidl文件 包含 ITelephony.aidl NeighboringCellInfo.aidl两个文件
  • NeighboringCellInfo.aidl ITelephony.aidl压缩包,
  • android_ITelephony_endCall_挂断电话.pdf
  • ITelephony.aidl和NeighboringCellInfo.aidl
  • android中有很多隐藏接口,即手机中有而SDK中没有开放的接口,这些接口可以通过反射获取并使用。本文主要介绍ITelephony的获取方法,附代码。
  • ITelephony和NeighboringCellInfo这两个文件是android源码文件,在实现接听电话时需要拷贝这两个文件到aidl目录下,代码实现可以看我的博客
  • ITelephony接口和ISms接口以及AIDL

    千次阅读 2015-10-22 11:17:15
    1. ITelephony接口和ISms接口以及AIDL  在我们的Android 应用中,当需要实现电话拨号时,我们需要进行如下调用  ITelephony phone =(ITelephony)ITelephony.Stub.asInterface(ServiceManager.getService("phone...

    1. ITelephony接口和ISms接口以及AIDL
           在我们的Android 应用中,当需要实现电话拨号时,我们需要进行如下调用
            ITelephony phone =(ITelephony)ITelephony.Stub.asInterface(ServiceManager.getService("phone"))
            phone.dial("10086");
           对于短信 应用,我们需要的是调用SmsManager,代码如下
           SmsManager manager = SmsManager.getDefault();
           manager.sendTextMessage("10086",null,"hi,this is sms",null,null);
           这里,SmsManager对ISms做了一层包装,实质上是通过调用
           ISms simISms = ISms.Stub.asInterface(ServiceManager.getService("isms"));
          simISms.sendRawPdu....

           应用都是采用AIDL来实现IPC的跨进程调度。
           对于AIDL应用,调用进程方存在的是一个实现接口的Pro xy对象,通过Proxy对象与被调用进程中的Stub对象进行通讯来实现IPC的跨进程调度,所以,在被调用进程一端必定有一个ITelephony.Stub类以及ISms.Stub类的实现

    2. PhoneInterfaceManager和SimSmsInterfaceManager
           ITelephony.Stub 的实现类为com.android.phone.PhoneInterfaceManager
           ISms.Stub的实现类为com.android.internal.telephony.gsm.SimSmsInterfaceManager
           从这两个类的构造器的调用代码里可以很清楚的看到进行了Service的注册工作
          ServiceManager.addService("phone",this);
          ServiceManager.addService("isms",this);

    3. PhoneApp,InCallScreen,PhoneUtils及其他相关类
           从SimSmsInteferManager的相关方法实现中可以看到,具体就是调用GSMPhone的SmsDispatcher实例来进行相关操作的。
           从PhoneInterfaceManager会维持一个Phone对象的引用,当拨号应用时,PhoneInterfaceManager会将构造好的 Intent传递给PhoneApp应用,该Intent的className指定则为InCallScreen,从中我们可以看到 InCallScreen具体是通过PhoneUtils调用Phone的相关方法来实现。
           PhoneInterfaceManager怎么获取到对应的Phone对象,然后又怎么将Phone对象传递到InCallScreen中呢?
           具体这里涉及到了PhoneApp这个类,从这个类维护了一个 PhoneInterfaceManager的引用(phoneMgr)以及一个Phone引用(phone),从该类的onCreate方法中我们可以 清楚的看到,PhoneApp通过PhoneFactory获取了一个Phone实例,并通过该实例实现了PhoneInterfaceManager对 象。因此,我们现在只需要关PhoneFactory具体提供的是一个什么样的Phone实例了。另外,PhoneApp类还提供了一个静态方法 getInstance供InCallScreen调用,InCallScreen正是通过调用该方法获得PhoneApp实例从而获得对应的Phone 实例的。接下来,我们通过查看PhoneFactory的方法可以看到,Phone对象对应的就是一个GSMPhone实例。

    4.GSMPhone与RIL
           从GSM的构造器可以看出,他依赖一个CommandInterface接口实例,通过PhoneFactory makeDefaultPhones方法,我们可以看到,根据系统 环境变量ro.radio.noril来判断是否需要采用RIL框架实现,如果该参数不为空,则采用Simultedcommands(主要是为了测试需要提供的模拟实现)否则,采用RIL。

    5.关于C代码与硬件之间的交互
           这部分工作其实就是C代码通过串口发送AT指令来拨号,收发短信。

    展开全文
  • 安卓开发黑名单时必须的两个aidl文件 最重要的ITelephony
  • java.lang.NoSuchMethodError: No interface method endCall()Z in class Lcom/android/internal/telephony/ITelephony; or its super classes (declaration of '...
  • 简要介绍ITelephony与TelephonyManager/TelephonyManagerEx,并说明他们的使用场景。   [SOLUTION] ITelephony  ITelephony接口的代码实现是PhoneInterfaceManager.java,即PhoneInterfaceManager.java继承并...

     简要介绍ITelephony与TelephonyManager/TelephonyManagerEx,并说明他们的使用场景。

     

    [SOLUTION]

    ITelephony

        ITelephony接口的代码实现是PhoneInterfaceManager.java,即PhoneInterfaceManager.java继承并实现了ITelephony.Stub。PhoneInterfaceManager.java在PhoneApp onCreate()时启动,并作为名称为“phone”的Service注册到ServiceManager中。调用其中的接口(我们以查看sim为例),可以使用如下代码:

                 

    用途:在使用平台开发时,其他应用可以通过ITelephony获取到一些Telephony相关信息。

     

    TelephonyManager

        TelephonyManager.java文件,主要是利用ITelephony、IPhoneSubInfo与ITelephonyRegistry来实现其功能,例如同样我们以hasIccCard()为例,这个函数在TelephonyManager中的实现是:

                 

        可见,TelephonyManager.java可以通过ITelephony来实现跨进程调用。此外TelephonyManager中提供listen()接口实现PhoneStateListener相关监听功能。使用方式大致如下:

    用途:

    1、 使用SDK开发或者平台开发时,调用相关接口获取Telephony相关信息;

    2、 使用SDK开发或者平台开发时,调用listen(PhoneStateListener listener, int events),实现Telephony消息监听。

     

     

     

    TelephonyManagerEx

        TelephonyManagerEx.java文件,由MTK平台特有双卡接口的实现。与TelephonyManager类似,主要是利用ITelephony、IPhoneSubInfo与ITelephonyRegistry来实现其功能。使用方式也与TelephonyManager是类似的:

     

    用途:

    1、 使用SDK开发或者平台开发时,调用相关双卡接口获取Telephony相关信息;

    2、 使用SDK开发或者平台开发时,调用listenGemini(PhoneStateListener listener, int events, int simId),实现Telephony监听双卡消息。

     

     

     

    最终结论:

    1、 ITelephony使用在平台开发上,跨进程调用到phone进程获取相关Telephony信息;

    2、 当使用SDK开发时,仅能使用TelephonyManager或者TelephonyManagerEx接口,无法使用ITelephony

    3、 当使用SDK开发且需要使用双卡接口时,请尽量使用TelephonyManagerEx

     

    若是需要做相关接口的客制化,请参考FAQ09347   如何在ITelephonyTelephonyManager/TelephonyManagerEx中开出接口使用

    展开全文
  • ITelephony.aidl与NeighboringCellInfo.aidl

    千次阅读 2014-08-20 15:57:38
    ITelephony.aidl 如下 /*  * 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 ...

    ITelephony.aidl 如下

    /*
     * 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.
     */


    package com.android.internal.telephony;


    import android.os.Bundle;
    import java.util.List;
    import android.telephony.NeighboringCellInfo;


    /**
     * Interface used to interact with the phone.  Mostly this is used by the 
     * TelephonyManager class.  A few places are still using this directly.
     * Please clean them up if possible and use TelephonyManager insteadl.
     *
     * {@hide}
     */
    interface ITelephony {


        /**
         * Dial a number. This doesn't place the call. It displays
         * the Dialer screen.
         * @param number the number to be dialed. If null, this
         * would display the Dialer screen with no number pre-filled.
         */
        void dial(String number);


        /**
         * Place a call to the specified number.
         * @param number the number to be called.
         */
        void call(String number);


        /**
         * If there is currently a call in progress, show the call screen.
         * The DTMF dialpad may or may not be visible initially, depending on
         * whether it was up when the user last exited the InCallScreen.
         *
         * @return true if the call screen was shown.
         */
        boolean showCallScreen();


        /**
         * Variation of showCallScreen() that also specifies whether the
         * DTMF dialpad should be initially visible when the InCallScreen
         * comes up.
         *
         * @param showDialpad if true, make the dialpad visible initially,
         *                    otherwise hide the dialpad initially.
         * @return true if the call screen was shown.
         *
         * @see showCallScreen
         */
        boolean showCallScreenWithDialpad(boolean showDialpad);


        /**
         * End call or go to the Home screen
         *
         * @return whether it hung up
         */
        boolean endCall();


        /**
         * Answer the currently-ringing call.
         *
         * If there's already a current active call, that call will be
         * automatically put on hold.  If both lines are currently in use, the
         * current active call will be ended.
         *
         * TODO: provide a flag to let the caller specify what policy to use
         * if both lines are in use.  (The current behavior is hardwired to
         * "answer incoming, end ongoing", which is how the CALL button
         * is specced to behave.)
         *
         * TODO: this should be a oneway call (especially since it's called
         * directly from the key queue thread).
         */
        void answerRingingCall();


        /**
         * Silence the ringer if an incoming call is currently ringing.
         * (If vibrating, stop the vibrator also.)
         *
         * It's safe to call this if the ringer has already been silenced, or
         * even if there's no incoming call.  (If so, this method will do nothing.)
         *
         * TODO: this should be a oneway call too (see above).
         *       (Actually *all* the methods here that return void can
         *       probably be oneway.)
         */
        void silenceRinger();


        /**
         * Check if we are in either an active or holding call
         * @return true if the phone state is OFFHOOK.
         */
        boolean isOffhook();


        /**
         * Check if an incoming phone call is ringing or call waiting.
         * @return true if the phone state is RINGING.
         */
        boolean isRinging();


        /**
         * Check if the phone is idle.
         * @return true if the phone state is IDLE.
         */
        boolean isIdle();


        /**
         * Check to see if the radio is on or not.
         * @return returns true if the radio is on.
         */
        boolean isRadioOn();


        /**
         * Check if the SIM pin lock is enabled.
         * @return true if the SIM pin lock is enabled.
         */
        boolean isSimPinEnabled();


        /**
         * Cancels the missed calls notification.
         */
        void cancelMissedCallsNotification(); 


        /**
         * Supply a pin to unlock the SIM.  Blocks until a result is determined.
         * @param pin The pin to check.
         * @return whether the operation was a success.
         */
        boolean supplyPin(String pin);


        /**
         * Handles PIN MMI commands (PIN/PIN2/PUK/PUK2), which are initiated
         * without SEND (so <code>dial</code> is not appropriate).
         * 
         * @param dialString the MMI command to be executed.
         * @return true if MMI command is executed.
         */
        boolean handlePinMmi(String dialString);


        /**
         * Toggles the radio on or off.
         */
        void toggleRadioOnOff();


        /**
         * Set the radio to on or off
         */
        boolean setRadio(boolean turnOn);


        /**
         * Request to update location information in service state
         */
        void updateServiceLocation();


        /**
         * Enable location update notifications.
         */
        void enableLocationUpdates();


        /**
         * Disable location update notifications.
         */
        void disableLocationUpdates();


        /**
         * Enable a specific APN type.
         */
        int enableApnType(String type);


        /**
         * Disable a specific APN type.
         */
        int disableApnType(String type);


        /**
         * Allow mobile data connections.
         */
        boolean enableDataConnectivity();


        /**
         * Disallow mobile data connections.
         */
        boolean disableDataConnectivity();


        /**
         * Report whether data connectivity is possible.
         */
        boolean isDataConnectivityPossible();


        Bundle getCellLocation();


        /**
         * Returns the neighboring cell information of the device.
         */
        List<NeighboringCellInfo> getNeighboringCellInfo();


         int getCallState();
         int getDataActivity();
         int getDataState();
    }




    //-------------------------------------------------------------------------------------------------------------

    NeighboringCellInfo.aidl如下

    /* //device/java/android/android/content/Intent.aidl
    **
    ** Copyright 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.
    */


    package android.telephony;


    parcelable NeighboringCellInfo;

    展开全文
  • ITelephony.aidl 在android studio中的使用

    千次阅读 2016-12-28 14:10:45
    先看下你的ITelephony.aidl文件的包名是不是com.android.internal.telephony; aidl文件放在aidl目录下, 和java目录同级 最后要手动的build ---- make这个module 成功后, 才会生成Java文件,...
  • 按照网上的方法创建 ITelephony.aidl以及\NeighboringCellInfo.aidl在Android studio 结果使用的时候始终找不到ITelephony,最后才发现  需要在import-summary.txt中写入这个东东。 * src\android\...
  • android_ITelephony_endCall_挂断电话

    千次阅读 2012-03-06 22:13:39
    由于系统API并没有给我们提供Itelephony这个电话管理服务类的接口使用,所以我们就得通过非正常手段来得到这个服务接口.(通过源码中的Itelephony.aidl来帮助我们生成电话管理服务接口,从而使我们能够使用到系统操作...
  • 电话号码拦截功能时需要用到endCall(),需要使用该文件 注意:此文件需要放到包com.android.internal.telephony下,同时还需将NeighboringCellInfo.aidl文件放到android.telephony包下
  • 在该程序包名称中创建AIDL文件必须为ITelephony.aidl 在ITelephony.aidl添加该代码 package com.android.internal.telephony; interface ITelephony { boolean endCall(); void answerRingingCall(); void ...
  • Telephony模块中大量的使用了AIDL,但网上却很少有文章,把AIDL的用法、作用以及为什么要使用AIDL讲解的比较细致的...因此,我希望通过通过对ITelephony的分析,以点带面,能让更多的同学掌握AIDL在Telephony...
  • 由于系统API并没有给我们提供Itelephony这个电话管理服务类的接口使用,所以我们就得通过非正常手段来得到这个服务接口.(通过源码中的Itelephony.aidl来帮助我们生成电话管理服务接口,从而使我们能够使用到系统操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,834
精华内容 733
关键字:

ITelephony