Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android技術基礎 >> 第76章、再識Intent-調用ContentProviderl程序(從零開始學Android)

第76章、再識Intent-調用ContentProviderl程序(從零開始學Android)

編輯:Android技術基礎

Content Provider屬於Android應用程序的組件之一,作為應用程序之間唯一的共享數據的途徑,Content Provider主要的功能就是存儲並檢索數據以及向其他應用程序提供訪問數據的接口。其他程序可以通過此URI訪問指定的數據,進行數據的增、刪、改、查。

本章案例通過讀取聯系人信息為例。

一、程序文件

打開“src/com.genwoxue.intentcontprov/MainActivity.java”文件。
然後輸入以下代碼:

[java] view plain copy  
  1. package com.genwoxue.intentcontprov;  
  2.   
  3. import android.net.Uri;  
  4. import android.os.Bundle;  
  5. import android.provider.ContactsContract;  
  6. import android.app.Activity;  
  7. import android.content.ContentUris;  
  8. import android.content.Intent;  
  9. import android.database.Cursor;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13. import android.widget.TextView;  
  14. import android.widget.Toast;  
  15.   
  16. public class MainActivity extends Activity {  
  17.   
  18.     private static final int CONTACT_PICK=1;  
  19.     @Override  
  20.     protected void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.activity_main);  
  23.           
  24.         Uri uri=Uri.parse("content://contacts/people");  
  25.         Intent intent=new Intent(Intent.ACTION_PICK,uri);  
  26.         super.startActivityForResult(intent,1);  
  27.           
  28.     }  
  29.       
  30.     @Override  
  31.     protected void onActivityResult(int requestCode,int resultCode,Intent data){  
  32.         switch(requestCode){  
  33.         case CONTACT_PICK:  
  34.             Uri uri=data.getData();  
  35.             String mobileselect=ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?";  
  36.             String[] mobileselectargs={String.valueOf(ContentUris.parseId(uri))};  
  37.             Cursor cursor=super.managedQuery(  
  38.                     ContactsContract.CommonDataKinds.Phone.CONTENT_URI,   
  39.                     null,   
  40.                     mobileselect,   
  41.                     mobileselectargs,   
  42.                     null);  
  43.             StringBuffer buff=new StringBuffer();  
  44.             buff.append("手機號碼:");  
  45.             for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){  
  46.                 buff.append(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));  
  47.               
  48.             Toast.makeText(getApplicationContext(), buff, Toast.LENGTH_LONG).show();  
  49.               
  50.             }  
  51.         }  
  52.     }  
  53.   
  54. }  

 

三、配置文件

打開“AndroidManifest.xml”文件。

然後輸入以下代碼:

[html] view plain copy  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.genwoxue.intentcontprov"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.   
  7.     <uses-sdk  
  8.         android:minSdkVersion="10"  
  9.         android:targetSdkVersion="15" />  
  10.   
  11.     <uses-permission android:name="android.permission.READ_CONTACTS"/>  
  12.     <application  
  13.         android:allowBackup="true"  
  14.         android:icon="@drawable/ic_launcher"  
  15.         android:label="@string/app_name"  
  16.         android:theme="@style/AppTheme" >  
  17.         <activity  
  18.             android:name="com.genwoxue.intentcontprov.MainActivity"  
  19.             android:label="@string/app_name" >  
  20.             <intent-filter>  
  21.                 <action android:name="android.intent.action.MAIN" />  
  22.                 <category android:name="android.intent.category.LAUNCHER" />  
  23.             </intent-filter>  
  24.         </activity>  
  25.     </application>  
  26.   
  27. </manifest>  

 

注意:需要在AndroidManifest.xml文件中添加權限:

<uses-permission android:name="android.permission.READ_CONTACTS"/>

四、運行結果

我們選擇“喬內蒙”,顯示其電話號碼。

\ \
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved