Android源 77,78,79,80

77,78.PhoneListening


public class MyService extends Service {  
    private final String TAG = "MyService";  
    private TelephonyManager tm;  
    private MyPhoneStateListener listener;  
    public MyService() {  
    }  
 
    @Override  
    public void onDestroy() {  
        Log.d(TAG, "onDestroy");  
        super.onDestroy();  
        tm.listen(listener, PhoneStateListener.LISTEN_NONE);  
    }  
 
    @Override  
    public void onCreate() {  
        super.onCreate();  
        tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);  
        listener = new MyPhoneStateListener();  
        tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);  
    }  
 
    @Override  
    public IBinder onBind(Intent intent) {  
        return null;  
    }  
 
    private class MyPhoneStateListener extends PhoneStateListener{  
 
        @Override  
        public void onCallStateChanged(int state, String incomingNumber) {  
            super.onCallStateChanged(state, incomingNumber);  
            switch (state){  
                case TelephonyManager.CALL_STATE_IDLE:  
                    Log.d(TAG, "电话闲置");  
                    break;  
                case TelephonyManager.CALL_STATE_RINGING:  
                    Log.d(TAG, "电话响铃");  
                    break;  
                case TelephonyManager.CALL_STATE_OFFHOOK:  
                    Log.d(TAG, "电话接听");  
                    break;  
            }  
        }  
    } 

79,80.

<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:id="@+id/activity_main"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    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="com.example.localselectperson.MainActivity">  
 
 
    <Button  
        android:id="@+id/btn_1"  
        android:textSize="20sp"  
        android:onClick="onStartService"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="绑定服务"/>  
 
    <Button  
        android:id="@+id/btn_11"  
        android:textSize="20sp"  
        android:onClick="onStopService"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="解绑服务"/>  
 
    <EditText  
        android:id="@+id/edit_query"  
        android:hint="在此输入您的ID"  
        android:textSize="20sp"  
        android:inputType="number"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"/>  
 
    <Button  
        android:id="@+id/btn_3"  
        android:textSize="20sp"  
        android:onClick="onSelect"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="查询信息"/>  
 
    <TextView  
        android:id="@+id/show_text"  
        android:textSize="20sp"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"/>  
 
 

</LinearLayout>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阅读Android代码是一个复杂且庞大的任务,但以下步骤可以帮助你开始: 1. 下载代码:首先,你需要下载Android代码。你可以从Android项目(AOSP)网站获取最新的Android代码。根据你的需求,选择并下载相应的代码库。 2. 设置开发环境:在阅读Android代码之前,确保你已经设置好了开发环境。这包括安装Java开发工具、Android SDK和相关的开发工具链。确保你能够编译和构建代码。 3. 确定学习目标:由于Android代码非常庞大,你可能无法一次性阅读完整个代码库。因此,建议先确定你的学习目标。你可以选择阅读特定模块或功能的实现,或者专注于某个特定版本的Android。 4. 阅读文档:Android代码附带了一些文档,如API文档、开发者指南等。阅读这些文档可以帮助你理解代码的结构和使用方式。 5. 选择关键模块:Android代码中有许多关键的模块,如Framework层、系统服务、应用程序等。你可以选择其中一个模块作为起点,逐步深入学习和理解。 6. 阅读代码和注释:Android代码中包含了大量的注释,这些注释对于理解代码逻辑和实现细节非常有帮助。同时,你也可以通过阅读代码来了解Android的设计和实现方式。 7. 调试和运行代码:在阅读代码的过程中,你可以使用调试工具来跟踪代码执行过程,帮助你理解代码的工作原理。你还可以尝试编译和运行一些简单的代码,验证你对代码的理解。 8. 参考其他资:除了Android代码本身,还有一些优秀的开项目、书籍和在线教程可以作为辅助学习资。你可以参考这些资,加深对Android代码的理解。 需要注意的是,阅读Android代码需要一定的编程经验和知识基础,并且需要花费一定的时间和精力。建议在开始之前,先确保你有足够的时间和兴趣去深入学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值