Categories
Android CDMA

Android SMS 写入UIM卡

Smart Phone跟Featrue Phone不一样,短信不会放在ICC卡上,毕竟卡的存储空间是有限的。最近一网友很纠结,老在问我如何把短信写到UIM卡上?有没有办法写个通用的程序?这个主要决定于手机厂家没有实现相应的接口函数。 Android 提供把短信写入ICC卡的接口为: frameworks/base/telephony/java/android/telephony/SmsManager.java copyMessageToIcc 如果是CDMA的话,调用过程如下: frameworks/base/telephony/java/com/android/internal/telephony/cdma/RuimSmsInterfaceManager.java 里的函数 copyMessageToIccEf 调用 frameworks/base/telephony/java/com/android/internal/telephony/RIL.java 里的 writeSmsToRuim ,这个要发出 一个 RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM 请求号,RILD接收请求,传给 libril,再给 reference-ril,这样,只要在 reference-ril 里的 onRequest (int request, void *data, size_t datalen, RIL_Token t) 处理这个 RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM 请求号即可,根据不同的模组,填入相应的AT处理函数。 像XT800,i909双网手机,在长按单条短信时,都弹出复制SMS至UIM卡选项。通过反编译Mms.apk包,可以看出他们都自己实现自己的接口,而没有实现Android默认的Api。xt800提供了一个content://sms/icc provider,大致是这样实现的: String sSc = null; Uri uSim = null; ContentValues values = new ContentValues(); values.put(“type”, Integer.valueOf(mBody.mBoxId)); values.put(“address”, mBody.mAddress); values.put(“body”, […]

Categories
Android CDMA

Android CDMA 手机开发要点

Android从1.6版本开始支持CDMA,cdma-import分支由Teleca CDMA团队开发,最后合并到主干。浏览 http://android.git.kernel.org, 在heads可以查看cdma-import的代码变化,从ril层到上层的应用程序。 RIL 多了下面的请求号: RIL_REQUEST_CDMA_SET_SUBSCRIPTION RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE RIL_REQUEST_CDMA_FLASH RIL_REQUEST_CDMA_BURST_DTMF RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY RIL_REQUEST_CDMA_SEND_SMS RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG RIL_REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG RIL_REQUEST_CDMA_SMS_BROADCAST_ACTIVATION RIL_REQUEST_CDMA_SUBSCRIPTION RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM 自动上报: RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL RIL_UNSOL_CDMA_CALL_WAITING RIL_UNSOL_CDMA_OTA_PROVISION_STATUS RIL_UNSOL_CDMA_INFO_REC RIL_UNSOL_RESPONSE_CDMA_NEW_SMS 主要工作在 hardware/ril/reference-cdma-sms 实现cdma 短信的编解码,模组特殊AT处理。 Telephony Framework 在 telephony framework层,该启动 CDMAPhone 还是 GSMPhone ? frameworks/base/telephony/java/com/android/internal/telephony/PhoneFactory.java 里的makeDefaultPhone函数: //Get preferredNetworkMode from Settings.System int networkMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.PREFERRED_NETWORK_MODE, preferredNetworkMode); 如果要设置成EvDo网络,则需要在init.rc配置文件里添加: setprop […]

Categories
Android

关于 android RIL 调试

首先,要了解RIL是如何启动的,拿G1做个例子 init.rc: service ril-daemon /system/bin/rild socket rild stream 660 root radio socket rild-debug stream 660 radio system user root group radio cache inet misc audio /system/build.prop: ro.ril.hsxpa=1 ro.ril.gprsclass=10 rild.libpath=/system/lib/libhtc_ril.so 阅读 /hardware/ril/rild/rild.c。 如果/system/bin/rild 启动有带参数,则解析参数,否则找系统变量 rild.libpath 也可以不按照G1的,一口气写完: init.rc: /system/bin/rild -l /system/lib/libreference-ril.so — -d /dev/ttyS0 /hardware/ril/rild/rild.c 里有一段注释: “special override when in the emulator”, 紧接着是 #if 1 … #endif […]

Categories
Android

Android 组件: SectionedAdapter

这个组件与Mark Murphy 的书《The Busy Coder’s Guide to Advanced Android Development》有一些不同,这个SectionedAdapter是通过干坏事,反编译Vending.apk得到的。还有一个是AggregatedAdapter,合起来实现market单个软件信息显示的效果。 不过AggregatedAdapter比较难反编译出来,没关系,加上cwac-merge这个组件,就可以实现同样的效果。不同分段的Adapter,继承SectionedAdapter,实现自己的东西,该干啥就干啥,然后merge起来。 SectionAdapter.java /* * Copyright (C) 2010 lytsing.org * * 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 […]

Categories
Android

android 2.2 market显示热门付费应用

有 root 权限的,直接编辑 /data/data/com.android.vending/shared_prefs/vending_preferences.xml 将 <boolean name=”metadata_paid_apps_enabled” value=”false” /> 修改为: <boolean name=”metadata_paid_apps_enabled” value=”true” /> 重启机器,即可。 也可以安装 MarketEnable或MarketAccess。 主页面显示:”Android 电子市场没有符合请求的内容“, 解决方法请参考 Android market FAQ 最末尾那段,只能暂时的通过setpro 设置一些属性,重启就失效了。 参考: http://forum.cyanogenmod.com/topic/1972-paid-apps-tab-missing/

Pages: Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 Next