2013-05-10 87 views
0

我已经创建了一个用于在android中创建新联系人的备用应用。当我们创建联系人时它工作正常。创建联系人时从通话记录中获取号码

但是,当我们从通话记录中创建联系人并在上下文菜单中选择“创建联系人”时,我无法获取用于创建联系人的电话号码。

Plz帮我...

+0

您使用ACTION_INSERT意图过滤器? – stinepike 2013-05-10 15:24:26

+0

是的。我正在使用ACTION_INSERT意图过滤器。 – user2370472 2013-05-11 09:50:28

回答

0

它可能有点晚,但这对我很有用。

在你的Android manif `

  <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter android:label="Edit/Add Property/Requirement"> 
       <action android:name="android.intent.action.EDIT" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
       <data android:mimeType="vnd.android.cursor.item/person" android:host="contacts" /> 
       <data android:mimeType="vnd.android.cursor.item/contact" android:host="com.android.contacts" /> 
       <data android:mimeType="vnd.android.cursor.item/raw_contact" android:host="com.android.contacts" /> 
      </intent-filter> 
     <intent-filter android:label="Add Property/Requirement"> 
      <action android:name="android.intent.action.INSERT" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <data android:mimeType="vnd.android.cursor.dir/person" /> 
      <data android:mimeType="vnd.android.cursor.dir/contact" /> 
      <data android:mimeType="vnd.android.cursor.dir/raw_contact" /> 
     </intent-filter> 
    </activity>` 

添加这此活动将是一个建立联系。而活动中,使用此代码来获取电话号码

Intent intent = getIntent(); 
    try{ 
     Uri uri = intent.getData(); 
     if (uri.toString().endsWith("contacts")) // new contact 
     { 
      phoneNumber = intent 
        .getStringExtra(ContactsContract.Intents.Insert.PHONE); 
     } 
     else{ 
      ContactID = ""+ContentUris.parseId(uri); 
      phoneNumber = intent 
        .getStringExtra(ContactsContract.Intents.Insert.PHONE); 
     } 
    } 
    catch(Exception E){ 

    } 

希望这有助于:)

相关问题