qcom平台分析通话失败原因

如果电话没有正常挂断,可以通过在Log中查找call failure case关键字来初步定位通话失败原因。

操作命令:

adb logcat -b radio | grep "call failure case"

正常挂断电话,一般会得到如下log:

E/RILQ (230):qcril_qmi_voice_all_call_status_ind_hdlr L4135:[0][event]call failure cause 0x91

如果call failure cause不是0x91则说明电话被非正常挂断,可以参考如下对照表,初步确定原因。

call failure cause值参考表

typedef enum {
  CALL_END_REASON_ENUM_MIN_ENUM_VAL_V02 = -2147483647, /**< To force a 32 bit signed enum.  Do not change or use*/
  CALL_END_CAUSE_OFFLINE_V02 = 0x00,
  CALL_END_CAUSE_CDMA_LOCK_V02 = 0x14,
  CALL_END_CAUSE_NO_SRV_V02 = 0x15,
  CALL_END_CAUSE_FADE_V02 = 0x16,
  CALL_END_CAUSE_INTERCEPT_V02 = 0x17,
  CALL_END_CAUSE_REORDER_V02 = 0x18,
  CALL_END_CAUSE_REL_NORMAL_V02 = 0x19,
  CALL_END_CAUSE_REL_SO_REJ_V02 = 0x1A,
  CALL_END_CAUSE_INCOM_CALL_V02 = 0x1B,
  CALL_END_CAUSE_ALERT_STOP_V02 = 0x1C,
  CALL_END_CAUSE_CLIENT_END_V02 = 0x1D,
  CALL_END_CAUSE_ACTIVATION_V02 = 0x1E,
  CALL_END_CAUSE_MC_ABORT_V02 = 0x1F,
  CALL_END_CAUSE_MAX_ACCESS_PROBE_V02 = 0x20,
  CALL_END_CAUSE_PSIST_N_V02 = 0x21,
  CALL_END_CAUSE_UIM_NOT_PRESENT_V02 = 0x22,
  CALL_END_CAUSE_ACC_IN_PROG_V02 = 0x23,
  CALL_END_CAUSE_ACC_FAIL_V02 = 0x24,
  CALL_END_CAUSE_RETRY_ORDER_V02 = 0x25,
  CALL_END_CAUSE_CCS_NOT_SUPPORTED_BY_BS_V02 = 0x26,
  CALL_END_CAUSE_NO_RESPONSE_FROM_BS_V02 = 0x27,
  CALL_END_CAUSE_REJECTED_BY_BS_V02 = 0x28,
  CALL_END_CAUSE_INCOMPATIBLE_V02 = 0x29,
  CALL_END_CAUSE_ACCESS_BLOCK_V02 = 0x2A,
  CALL_END_CAUSE_ALREADY_IN_TC_V02 = 0x2B,
  CALL_END_CAUSE_EMERGENCY_FLASHED_V02 = 0x2C,
  CALL_END_CAUSE_USER_CALL_ORIG_DURING_GPS_V02 = 0x2D,
  CALL_END_CAUSE_USER_CALL_ORIG_DURING_SMS_V02 = 0x2E,
  CALL_END_CAUSE_USER_CALL_ORIG_DURING_DATA_V02 = 0x2F,
  CALL_END_CAUSE_REDIR_OR_HANDOFF_V02 = 0x30,
  CALL_END_CAUSE_ACCESS_BLOCK_ALL_V02 = 0x31,
  CALL_END_CAUSE_OTASP_SPC_ERR_V02 = 0x32,
  CALL_END_CAUSE_IS707B_MAX_ACC_V02 = 0x33,
  CALL_END_CAUSE_ACC_FAIL_REJ_ORD_V02 = 0x34,
  CALL_END_CAUSE_ACC_FAIL_RETRY_ORD_V02 = 0x35,
  CALL_END_CAUSE_TIMEOUT_T42_V02 = 0x36,
  CALL_END_CAUSE_TIMEOUT_T40_V02 = 0x37,
  CALL_END_CAUSE_SRV_INIT_FAIL_V02 = 0x38,
  CALL_END_CAUSE_T50_EXP_V02 = 0x39,
  CALL_END_CAUSE_T51_EXP_V02 = 0x3A,
  CALL_END_CAUSE_RL_ACK_TIMEOUT_V02 = 0x3B,
  CALL_END_CAUSE_BAD_FL_V02 = 0x3C,
  CALL_END_CAUSE_TRM_REQ_FAIL_V02 = 0x3D,
  CALL_END_CAUSE_TIMEOUT_T41_V02 = 0x3E,
  CALL_END_CAUSE_INCOM_REJ_V02 = 0x66,
  CALL_END_CAUSE_SETUP_REJ_V02 = 0x67,
  CALL_END_CAUSE_NETWORK_END_V02 = 0x68,
  CALL_END_CAUSE_NO_FUNDS_V02 = 0x69,
  CALL_END_CAUSE_NO_GW_SRV_V02 = 0x6A,
  CALL_END_CAUSE_NO_CDMA_SRV_V02 = 0x6B,
  CALL_END_CAUSE_NO_FULL_SRV_V02 = 0x6C,
  CALL_END_CAUSE_MAX_PS_CALLS_V02 = 0x6D,
  CALL_END_CAUSE_UNKNOWN_SUBSCRIBER_V02 = 0x6E,
  CALL_END_CAUSE_ILLEGAL_SUBSCRIBER_V02 = 0x6F,
  CALL_END_CAUSE_BEARER_SERVICE_NOT_PROVISIONED_V02 = 0x70,
  CALL_END_CAUSE_TELE_SERVICE_NOT_PROVISIONED_V02 = 0x71,
  CALL_END_CAUSE_ILLEGAL_EQUIPMENT_V02 = 0x72,
  CALL_END_CAUSE_CALL_BARRED_V02 = 0x73,
  CALL_END_CAUSE_ILLEGAL_SS_OPERATION_V02 = 0x74,
  CALL_END_CAUSE_SS_ERROR_STATUS_V02 = 0x75,
  CALL_END_CAUSE_SS_NOT_AVAILABLE_V02 = 0x76,
  CALL_END_CAUSE_SS_SUBSCRIPTION_VIOLATION_V02 = 0x77,
  CALL_END_CAUSE_SS_INCOMPATIBILITY_V02 = 0x78,
  CALL_END_CAUSE_FACILITY_NOT_SUPPORTED_V02 = 0x79,
  CALL_END_CAUSE_ABSENT_SUBSCRIBER_V02 = 0x7A,
  CALL_END_CAUSE_SHORT_TERM_DENIAL_V02 = 0x7B,
  CALL_END_CAUSE_LONG_TERM_DENIAL_V02 = 0x7C,
  CALL_END_CAUSE_SYSTEM_FAILURE_V02 = 0x7D,
  CALL_END_CAUSE_DATA_MISSING_V02 = 0x7E,
  CALL_END_CAUSE_UNEXPECTED_DATA_VALUE_V02 = 0x7F,
  CALL_END_CAUSE_PWD_REGISTRATION_FAILURE_V02 = 0x80,
  CALL_END_CAUSE_NEGATIVE_PWD_CHECK_V02 = 0x81,
  CALL_END_CAUSE_NUM_OF_PWD_ATTEMPTS_VIOLATION_V02 = 0x82,
  CALL_END_CAUSE_POSITION_METHOD_FAILURE_V02 = 0x83,
  CALL_END_CAUSE_UNKNOWN_ALPHABET_V02 = 0x84,
  CALL_END_CAUSE_USSD_BUSY_V02 = 0x85,
  CALL_END_CAUSE_REJECTED_BY_USER_V02 = 0x86,
  CALL_END_CAUSE_REJECTED_BY_NETWORK_V02 = 0x87,
  CALL_END_CAUSE_DEFLECTION_TO_SERVED_SUBSCRIBER_V02 = 0x88,
  CALL_END_CAUSE_SPECIAL_SERVICE_CODE_V02 = 0x89,
  CALL_END_CAUSE_INVALID_DEFLECTED_TO_NUMBER_V02 = 0x8A,
  CALL_END_CAUSE_MPTY_PARTICIPANTS_EXCEEDED_V02 = 0x8B,
  CALL_END_CAUSE_RESOURCES_NOT_AVAILABLE_V02 = 0x8C,
  CALL_END_CAUSE_UNASSIGNED_NUMBER_V02 = 0x8D,
  CALL_END_CAUSE_NO_ROUTE_TO_DESTINATION_V02 = 0x8E,
  CALL_END_CAUSE_CHANNEL_UNACCEPTABLE_V02 = 0x8F,
  CALL_END_CAUSE_OPERATOR_DETERMINED_BARRING_V02 = 0x90,
  CALL_END_CAUSE_NORMAL_CALL_CLEARING_V02 = 0x91,
  CALL_END_CAUSE_USER_BUSY_V02 = 0x92,
  CALL_END_CAUSE_NO_USER_RESPONDING_V02 = 0x93,
  CALL_END_CAUSE_USER_ALERTING_NO_ANSWER_V02 = 0x94,
  CALL_END_CAUSE_CALL_REJECTED_V02 = 0x95,
  CALL_END_CAUSE_NUMBER_CHANGED_V02 = 0x96,
  CALL_END_CAUSE_PREEMPTION_V02 = 0x97,
  CALL_END_CAUSE_DESTINATION_OUT_OF_ORDER_V02 = 0x98,
  CALL_END_CAUSE_INVALID_NUMBER_FORMAT_V02 = 0x99,
  CALL_END_CAUSE_FACILITY_REJECTED_V02 = 0x9A,
  CALL_END_CAUSE_RESP_TO_STATUS_ENQUIRY_V02 = 0x9B,
  CALL_END_CAUSE_NORMAL_UNSPECIFIED_V02 = 0x9C,
  CALL_END_CAUSE_NO_CIRCUIT_OR_CHANNEL_AVAILABLE_V02 = 0x9D,
  CALL_END_CAUSE_NETWORK_OUT_OF_ORDER_V02 = 0x9E,
  CALL_END_CAUSE_TEMPORARY_FAILURE_V02 = 0x9F,
  CALL_END_CAUSE_SWITCHING_EQUIPMENT_CONGESTION_V02 = 0xA0,
  CALL_END_CAUSE_ACCESS_INFORMATION_DISCARDED_V02 = 0xA1,
  CALL_END_CAUSE_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE_V02 = 0xA2,
  CALL_END_CAUSE_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED_V02 = 0xA3,
  CALL_END_CAUSE_QOS_UNAVAILABLE_V02 = 0xA4,
  CALL_END_CAUSE_REQUESTED_FACILITY_NOT_SUBSCRIBED_V02 = 0xA5,
  CALL_END_CAUSE_INCOMING_CALLS_BARRED_WITHIN_CUG_V02 = 0xA6,
  CALL_END_CAUSE_BEARER_CAPABILITY_NOT_AUTH_V02 = 0xA7,
  CALL_END_CAUSE_BEARER_CAPABILITY_UNAVAILABLE_V02 = 0xA8,
  CALL_END_CAUSE_SERVICE_OPTION_NOT_AVAILABLE_V02 = 0xA9,
  CALL_END_CAUSE_ACM_LIMIT_EXCEEDED_V02 = 0xAA,
  CALL_END_CAUSE_BEARER_SERVICE_NOT_IMPLEMENTED_V02 = 0xAB,
  CALL_END_CAUSE_REQUESTED_FACILITY_NOT_IMPLEMENTED_V02 = 0xAC,
  CALL_END_CAUSE_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE_V02 = 0xAD,
  CALL_END_CAUSE_SERVICE_OR_OPTION_NOT_IMPLEMENTED_V02 = 0xAE,
  CALL_END_CAUSE_INVALID_TRANSACTION_IDENTIFIER_V02 = 0xAF,
  CALL_END_CAUSE_USER_NOT_MEMBER_OF_CUG_V02 = 0xB0,
  CALL_END_CAUSE_INCOMPATIBLE_DESTINATION_V02 = 0xB1,
  CALL_END_CAUSE_INVALID_TRANSIT_NW_SELECTION_V02 = 0xB2,
  CALL_END_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE_V02 = 0xB3,
  CALL_END_CAUSE_INVALID_MANDATORY_INFORMATION_V02 = 0xB4,
  CALL_END_CAUSE_MESSAGE_TYPE_NON_IMPLEMENTED_V02 = 0xB5,
  CALL_END_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE_V02 = 0xB6,
  CALL_END_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT_V02 = 0xB7,
  CALL_END_CAUSE_CONDITONAL_IE_ERROR_V02 = 0xB8,
  CALL_END_CAUSE_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE_V02 = 0xB9,
  CALL_END_CAUSE_RECOVERY_ON_TIMER_EXPIRED_V02 = 0xBA,
  CALL_END_CAUSE_PROTOCOL_ERROR_UNSPECIFIED_V02 = 0xBB,
  CALL_END_CAUSE_INTERWORKING_UNSPECIFIED_V02 = 0xBC,
  CALL_END_CAUSE_OUTGOING_CALLS_BARRED_WITHIN_CUG_V02 = 0xBD,
  CALL_END_CAUSE_NO_CUG_SELECTION_V02 = 0xBE,
  CALL_END_CAUSE_UNKNOWN_CUG_INDEX_V02 = 0xBF,
  CALL_END_CAUSE_CUG_INDEX_INCOMPATIBLE_V02 = 0xC0,
  CALL_END_CAUSE_CUG_CALL_FAILURE_UNSPECIFIED_V02 = 0xC1,
  CALL_END_CAUSE_CLIR_NOT_SUBSCRIBED_V02 = 0xC2,
  CALL_END_CAUSE_CCBS_POSSIBLE_V02 = 0xC3,
  CALL_END_CAUSE_CCBS_NOT_POSSIBLE_V02 = 0xC4,
  CALL_END_CAUSE_IMSI_UNKNOWN_IN_HLR_V02 = 0xC5,
  CALL_END_CAUSE_ILLEGAL_MS_V02 = 0xC6,
  CALL_END_CAUSE_IMSI_UNKNOWN_IN_VLR_V02 = 0xC7,
  CALL_END_CAUSE_IMEI_NOT_ACCEPTED_V02 = 0xC8,
  CALL_END_CAUSE_ILLEGAL_ME_V02 = 0xC9,
  CALL_END_CAUSE_PLMN_NOT_ALLOWED_V02 = 0xCA,
  CALL_END_CAUSE_LOCATION_AREA_NOT_ALLOWED_V02 = 0xCB,
  CALL_END_CAUSE_ROAMING_NOT_ALLOWED_IN_THIS_LOCATION_AREA_V02 = 0xCC,
  CALL_END_CAUSE_NO_SUITABLE_CELLS_IN_LOCATION_AREA_V02 = 0xCD,
  CALL_END_CAUSE_NETWORK_FAILURE_V02 = 0xCE,
  CALL_END_CAUSE_MAC_FAILURE_V02 = 0xCF,
  CALL_END_CAUSE_SYNCH_FAILURE_V02 = 0xD0,
  CALL_END_CAUSE_NETWORK_CONGESTION_V02 = 0xD1,
  CALL_END_CAUSE_GSM_AUTHENTICATION_UNACCEPTABLE_V02 = 0xD2,
  CALL_END_CAUSE_SERVICE_NOT_SUBSCRIBED_V02 = 0xD3,
  CALL_END_CAUSE_SERVICE_TEMPORARILY_OUT_OF_ORDER_V02 = 0xD4,
  CALL_END_CAUSE_CALL_CANNOT_BE_IDENTIFIED_V02 = 0xD5,
  CALL_END_CAUSE_INCORRECT_SEMANTICS_IN_MESSAGE_V02 = 0xD6,
  CALL_END_CAUSE_MANDATORY_INFORMATION_INVALID_V02 = 0xD7,
  CALL_END_CAUSE_ACCESS_STRATUM_FAILURE_V02 = 0xD8,
  CALL_END_CAUSE_INVALID_SIM_V02 = 0xD9,
  CALL_END_CAUSE_WRONG_STATE_V02 = 0xDA,
  CALL_END_CAUSE_ACCESS_CLASS_BLOCKED_V02 = 0xDB,
  CALL_END_CAUSE_NO_RESOURCES_V02 = 0xDC,
  CALL_END_CAUSE_INVALID_USER_DATA_V02 = 0xDD,
  CALL_END_CAUSE_TIMER_T3230_EXPIRED_V02 = 0xDE,
  CALL_END_CAUSE_NO_CELL_AVAILABLE_V02 = 0xDF,
  CALL_END_CAUSE_ABORT_MSG_RECEIVED_V02 = 0xE0,
  CALL_END_CAUSE_RADIO_LINK_LOST_V02 = 0xE1,
  CALL_END_CAUSE_TIMER_T303_EXPIRED_V02 = 0xE2,
  CALL_END_CAUSE_CNM_MM_REL_PENDING_V02 = 0xE3,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_RR_REL_IND_V02 = 0xE4,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_RR_RANDOM_ACCESS_FAILURE_V02 = 0xE5,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_RRC_REL_IND_V02 = 0xE6,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_RRC_CLOSE_SESSION_IND_V02 = 0xE7,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_RRC_OPEN_SESSION_FAILURE_V02 = 0xE8,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_LOW_LEVEL_FAIL_V02 = 0xE9,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_LOW_LEVEL_FAIL_REDIAL_NOT_ALLOWED_V02 = 0xEA,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_LOW_LEVEL_IMMED_RETRY_V02 = 0xEB,
  CALL_END_CAUSE_ACCESS_STRATUM_REJ_ABORT_RADIO_UNAVAILABLE_V02 = 0xEC,
  CALL_END_CAUSE_SERVICE_OPTION_NOT_SUPPORTED_V02 = 0xED,
  CALL_END_CAUSE_BAD_REQ_WAIT_INVITE_V02 = 0x12C,
  CALL_END_CAUSE_BAD_REQ_WAIT_REINVITE_V02 = 0x12D,
  CALL_END_CAUSE_INVALID_REMOTE_URI_V02 = 0x12E,
  CALL_END_CAUSE_REMOTE_UNSUPP_MEDIA_TYPE_V02 = 0x12F,
  CALL_END_CAUSE_PEER_NOT_REACHABLE_V02 = 0x130,
  CALL_END_CAUSE_NETWORK_NO_RESP_TIME_OUT_V02 = 0x131,
  CALL_END_CAUSE_NETWORK_NO_RESP_HOLD_FAIL_V02 = 0x132,
  CALL_END_CAUSE_DATA_CONNECTION_LOST_V02 = 0x133,
  CALL_END_CAUSE_UPGRADE_DOWNGRADE_REJ_V02 = 0x134,
  CALL_END_CAUSE_SIP_403_FORBIDDEN_V02 = 0x135,
  CALL_END_CAUSE_NO_NETWORK_RESP_V02 = 0x136,
  CALL_END_CAUSE_UPGRADE_DOWNGRADE_FAILED_V02 = 0x137,
  CALL_END_CAUSE_UPGRADE_DOWNGRADE_CANCELLED_V02 = 0x138,
  CALL_END_CAUSE_SSAC_REJECT_V02 = 0x139,
  CALL_END_CAUSE_THERMAL_EMERGENCY_V02 = 0x13A,
  CALL_END_CAUSE_1XCSFB_SOFT_FAILURE_V02 = 0x13B,
  CALL_END_CAUSE_1XCSFB_HARD_FAILURE_V02 = 0x13C,
  CALL_END_CAUSE_CONNECTION_EST_FAILURE_V02 = 0x13D,
  CALL_END_CAUSE_CONNECTION_FAILURE_V02 = 0x13E,
  CALL_END_CAUSE_RRC_CONN_REL_NO_MT_SETUP_V02 = 0x13F,
  CALL_END_CAUSE_ESR_FAILURE_V02 = 0x140,
  CALL_END_CAUSE_MT_CSFB_NO_RESPONSE_FROM_NW_V02 = 0x141,
  CALL_END_CAUSE_BUSY_EVERYWHERE_V02 = 0x142,
  CALL_END_CAUSE_ANSWERED_ELSEWHERE_V02 = 0x143,
  CALL_END_CAUSE_RLF_DURING_CC_DISCONNECT_V02 = 0x144,
  CALL_END_CAUSE_TEMP_REDIAL_ALLOWED_V02 = 0x145,
  CALL_END_CAUSE_PERM_REDIAL_NOT_NEEDED_V02 = 0x146,
  CALL_END_CAUSE_MERGED_TO_CONFERENCE_V02 = 0x147,
  CALL_END_CAUSE_LOW_BATTERY_V02 = 0x148,
  CALL_END_REASON_ENUM_MAX_ENUM_VAL_V02 = 2147483647 /**< To force a 32 bit signed enum.  Do not change or use*/
}call_end_reason_enum_v02;
时间: 2024-10-11 16:27:42

qcom平台分析通话失败原因的相关文章

幽门螺旋菌(8)_耐药及治疗失败原因分析

由于幽门螺杆菌(Helicobacter pylori, 下称H.pylori)感染与多种上胃肠道疾病密切相关,所以抗H.pylori 感染治疗的研究一直是H.pylori 研究领域中的重点.为了评估抗菌治疗效果,并客观比较不同治疗方案的差异,Graham[1] 提出了一个评分系统,该系统分A.B.C.D.F 五个级别:A 级(Excellent)是ITT > 95% :B 级(Good)是ITT 90%~94% :C 级(Acceptable)是ITT 85% - 89% :D 级(Poor)

曾经成功企业的失败原因——Leo鉴书70

本书的关键主题就是,推动企业成为主流市场领先企业的管理方法同时也是导致它们错过破坏性技术所带来的发展机遇的管理. 换言之,管理良好的企业之所以失败也许正是因为它们管理良好,也许"良好的管理"的定义正在发生改变.今后,倾听消费者的意见.大力投资得到消费者认可的产品的生产.认真进行市场分析很可能否将变成"不当的管理".因为企业的资源分布取决于消费者和投资者--这两都有自身局限.企业不会在消费都产生相关需求之交投资发展破坏性技术,这种技通虽然代表着未来但只能产生相对低的利

单板注册失败原因排查

步骤如下: 一.看是不是在单板注册时间内 二.看设备是否上电 就是在power on slot ?,看是否显示Null,如果是的话,就是都注册上电了 三.备用主控板的系统的大包和主用主控板不一致 display startup 查看主用主控板的系统大包 PC连接备用主控板的CONSOLE口,查看备用主控板的系统大包是否和主用主控板的一致 解决系统大包不一致的步骤: 1.board-channel-check diable 2.设备通过FTP服务器将软件升级到一致 而升级是通过boot ROM模式

dlopen Linux 动态库失败原因与解决办法总结

1.dlopen 动态库失败原因,我碰到主要是以下几点(碰到新问题之后再完善,先打个点) ①动态库位置没有放对地方,dlopen 时候找不到你想操作的动态库 解决办法:放到指定目录. ②头文件没有包全,有不能识别的函数或者标识符 解决办法:加一条打印信息,程序运行到这里,会输出不能识别标识符. if((handle = dlopen(myso, RTLD_NOW)) == NULL) { printf("dlopen - %sn", dlerror()); exit(-1); } 或者

ramoops驱动注册失败原因详解

在使用linux的ramoops驱动模块时,在编译完加载时,会发现驱动加载不成功.明明直接使用的内核代码,为什么会出现这样的情况呢? 首先看一下ramoops的初始化代码: 180 static int __init ramoops_init(void) 181 { 182 return platform_driver_probe(&ramoops_driver, ramoops_probe); 183 } 184 185 static void __exit ramoops_exit(void

PHP json_decode返回null解析失败原因

在PHP5.4之前 json_decode函数有两个参数json_decode有两个参数,第一个是待解析的字符串,第二个是是否解析为Arrayjson_decode要求的字符串比较严格:(1)使用UTF-8编码(2)不能在最后元素有逗号(3)不能使用单引号(4)不能有r,t,如果有请替换所以问题来了,不小心在返回的json字符串中返回了BOM头的不可见字符,某些编辑器默认会加上BOM头,如下处理才能正确解析json数据: $result = json_decode(trim($contents,

新站优化失败原因的6大因素

我们做SEO的都很清楚, 每个新站上线时候我们都寄托了无数的期望与理想,可理想与现实实在还是有一定差距的,现实是很残酷的,很多的站往往还没有发挥原本期盼的作用与效果就被淹没在茫茫的互联网中了.下面伟伟SEO就和大家分享一下关于新站为何会失败的6大原因.希望对大家即将上线的的网站有所帮助.          1上线过急     很多时候为了赶进度在网站还没有很成熟,连定位都还没有搞清楚的情况下急急上线,在关键词设置方面也没有考虑到位有的关键词定位地太大太广超出自己的能力范围,有的则定位地太小,完全

【JavaScript】Hybrid App开发 四大主流移平台分析

转自http://dev.yesky.com/238/34657738.shtml Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java.Object-C.C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了.那么究竟什么才是Hybrid App呢? Hybrid App概念 Hybrid App:Hybri

混合开发模式下主流移动开发平台分析

关键字:AppCan 移动开发平台 移动应用 Hybrid App在过去的两年中已经成为移动界的核心话题,但是作为一名Web开发者来说要如何站在移动互联网的浪潮之巅呢?是选择学习原生开发,研究Java.Object-C.C#等语言,还是选择继续使用网页开发,容忍HTML5功能的局限性?就在开发者左右为难的情况下Hybrid App作为一个折中的解决方案诞生了.那么究竟什么才是Hybrid App呢?HybridApp概念Hybrid App:Hybrid App is a mobile appl