1. 程式人生 > >Android 手機通訊錄開發時給聯絡人新增頭像失敗的坑

Android 手機通訊錄開發時給聯絡人新增頭像失敗的坑

在給聯絡人新增頭像程式碼

Bitmap photo = ...;
// 將 Bitmap 轉為 byte[]
byte[] bytes = LshImageUtils.bitmap2Bytes(photo);
// 新增聯絡人, 插入名字和頭像 (LshContactsEditor 為本人封裝的編輯聯絡人的工具類)
LshContactsEditor editor = new LshContactsEditor(getContentResolver());
editor.buildContact()
    .insertDisplayName("路人甲")
    .insertPhoto(bytes);

在嘗試將頭像匯入聯絡人時,發現無法成功匯入,而測試的時候可以。並發現 logcat 中列印如下警告:

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 1448080)

於是猜測是因為匯入的頭像過大導致的,經過測試後發現確實如此。byte[] 的長度不能超過 1M。

網上查了一些資料,可能和 Intent 的 Bundle 中的能傳遞的最大的資料有關,很可能也是 1M。(如有網友知道確切的情況,敬請解釋)

本篇部落格中使用了 LshContactsEditor 是一個用於新增或編輯編輯聯絡人的工具類,使用起來非常方便。

順便推薦一下收錄有該工具類的 LshUtils 專門收集工具類的開源專案,這裡面有非常多提高日常開發效率的工具類。歡迎喜歡收集或喜歡工具類的童鞋拍磚!

相關推薦

Android 手機通訊錄開發聯絡人新增頭像失敗

在給聯絡人新增頭像程式碼 Bitmap photo = ...; // 將 Bitmap 轉為 byte[] byte[] bytes = LshImageUtils.bitmap2Bytes(photo); // 新增聯絡人, 插入名字和頭像 (LshC

如何向android手機通訊錄新增聯絡人

直接在手機的通訊錄的資料庫中新增列表 相關程式碼如下 package com.example.test; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import

Android手機通訊錄的讀取、新增、刪除、查詢

Android聯絡人資料庫檔案(contact2.db) 有研究過手機通訊錄資料的童鞋肯定知道一個數據庫檔案:目前是contact2.db(哥的手機是Android4.04的) 在此路徑下可以找到:/data/data/com.android.providers.c

Android 手機通訊錄修改聯絡人失敗

一般我們新增聯絡人的時候,是通過查詢 raw_contacts 表的 _id 欄位,獲取最末尾的 _id 值 +1 便是該表中需要新增的 contact_id 值。 一般情況下,contact_id 的值應該和 _id 的值是相等的。但是在第三方應該的大量

aNDROID手機遊戲開發框架

手機遊戲 框架 androi http ongl .com list 開發框架 lis %E5%AE%9E%E7%8E%B0%E2%80%9C%E5%9B%BE%E7%89%87%E6%8B%BC%E8%B4%B4%E2%80%9D%E7%9A%84%E6%95%88%E6

Android手機應用開發------基礎的事件處理

實驗目的: 瞭解Android程式設計基礎。 熟悉Button、RadioButton、EditText等基本控制元件,能夠處理這些控制元件的基本事件。 學會彈出對話方塊,並定製對話方塊中的內容,能對確定和取消按鈕的事件做處理。 1.首先要知道在哪裡新

零基礎Android手機嵌入式開發實戰課程

課程章節分佈: 第一部分 嵌入式C與資料結構篇 (20講) 第二部分ARM裸機開發篇 (43講) 第三部分 Linux應用開發 (28講) 第四部分 Linux系統移植 (5講) 第五部分 Linux裝置驅動 (13講) 第六部分 Android應用開發 (38講) 第七部分 Android系統移植 (11

零基礎Android手機嵌入式開發實戰教程 Android嵌入式開發

《零基礎Android手機嵌入式開發實戰課程(網咖計費系統、多功能播放器、驅動開發)》 課程講師:老夫子  適合人群:初級 課時數量:174課時 用到技術:Bootloader開發、裸板開發 涉及專案:網咖計費系統、多功能播放器、驅動開發等 諮詢QQ:1364314410

Android手機開發板的Wi-Fi連線

    首先說明這裡實現的是Android手機作為Wifi接入點(AP),PC機和ARM-Linux作為兩個終端接入。後面會說明一下怎樣讓開發板作與Android手機連線的其它方式,但是我的還沒有實現。     一、環境介紹:     PC機:Windows XP    

零基礎Android手機嵌入式開發實戰教程的視訊下載

視訊下載地址:http://pan.baidu.com/s/1dDIKDFz  本套課程從最礎的C語言和資料結構起步,一步步學習ARM裸機開發、Linux應用開發、Linux系統移植、Linux裝置驅動開發、Android應用開發、Android系統移植、Android裝置

學習win32 API開發6-視窗新增選單

看到別人做選單有很多種,而我就比較不要麻煩就用較簡單的來學習下吧,好用就行了。 一、用編輯資源來新增選單 我用的VC++6.0,VS2013也是一樣的!其他的工具嘛,沒有用, 不知道。 先插入或者說新增一個型別為選單(MENU)的資原始檔,然後就儲存下,儲存到當前專案的目錄

怎麼實現單擊spanspan新增邊框

說明:       1、開發環境 vs2012 asp.net mvc4 c# 1、效果圖 2、html 前端程式碼 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.as

js如何獲取android手機的電話號碼和聯絡人,並且傳遞給PHP、Java後臺

一、使用cordova代替android和iso、xcode的開發和打包          這裡先說說個人站在web的角度對cordova的一些理解:對於獲取手機的一些原生資訊,如呼叫攝像頭、獲取聯絡人,共享地理位置等,我的第一反應就是肯定要用原生的語言去做,如果js指令碼

Android通訊錄中讀取系統聯絡人

第一步、先建立一個Contacts.java實體類,用於表示聯絡人。package com.t20.contacts.entity; import java.io.Serializable; public class Contacts implements Seriali

下載Android手機通訊錄和Listview實現A-Z排序(附原始碼)

本章實現的功能:從Android手機中得到通訊錄聯絡人的資料,並且實現A-Z排序和搜尋過濾 以下是在本人手機中除錯的效果圖 要實現此功能 1,通過ContentProvider知識點讀取Android手機中聯絡人資料 記得要在AndroidManifest.xml宣告許

Android-手機通訊錄相關

獲取所有聯絡人的姓名、號碼 許可權 <uses-permission android:name="android.permission.READ_CONTACTS"/> 程式碼: /** * android之獲取所有聯絡

Android Eclipse匯入原始碼對自己新增的class檔案提示"XXX cannot be resolved to a type"的解決辦法

Eclipse匯入原始碼時對自己新增的class檔案提示"XXX cannot be resolved to a type"錯誤提示,且在Eclipse中點選該class物件時無法跳轉到該類,解決辦法

Android手機應用開發(七) | 資料儲存(下)

實驗目的 學習SQLite資料庫的使用。 學習ContentProvider的使用。 複習Android介面程式設計。 這次大概是做一個有登入、註冊、評論、點贊等功能的小型APP 效果如下:(圖片比較大) 登入註冊頁面的切換 兩個按鈕用RadioB

Android 手機插入電腦後提示“”ADB Interface"安裝失敗的問題

安裝ADB Interface 1. Android Studio開發時,如果在真機上測試並不是那麼的順利。直接將手機插入電腦,並不能識別。往往提示ADB Interface驅動未安裝。如下圖所示。 2. 此時 在計算機管理中找到下面的一項,並按圖操作。將本文提供的驅動安裝進去(ADB_Inter

Android開發系列(十一):對手機通訊錄的讀取、新增、刪除、查詢

一、通訊錄介紹 通訊錄是Android手機自帶的一個應用,它是一個ContentProvider應用,其它應用可以對通訊錄進行訪問,進行對聯絡人的CRUD操作。 二、通訊錄資料庫結構的介紹 首先,我們可以在File Explorer檢視下找到contacts2.db檔案,