当前位置:操作系统 > 安卓/Android >>

Android通过ContentProvider传输文件

我们知道Android两个应用程序之间进行数据交互需要通过ContentProvider,而且通常都是数据库的操作。
今天项目需要使用Android的ContentProvider交互普通SD卡上的文件,于是我写了这个小例子:
AndroidManifest.xml


[html]
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.h3c.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 
 
    <uses-sdk android:minSdkVersion="15" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
 
    <application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name" > 
        <activity 
            android:label="@string/app_name" 
            android:name=".NotepadTestActivity" > 
            <intent-filter > 
                <action android:name="android.intent.action.MAIN" /> 
 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
         
        <provider android:name=".TestContentProvider" android:authorities="com.h3c.test" /> 
    </application> 
 
</manifest> 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.h3c.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".NotepadTestActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       
        <provider android:name=".TestContentProvider" android:authorities="com.h3c.test" />
    </application>

</manifest>
TestContentProvider.java
[java]
package com.h3c.test; 
 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.util.ArrayList; 
 
import android.content.ContentProvider; 
import android.content.ContentProviderOperation; 
import android.content.ContentProviderResult; 
import android.content.ContentValues; 
import android.content.OperationApplicationException; 
import android.content.res.AssetFileDescriptor; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Environment; 
import android.os.ParcelFileDescriptor; 
import android.util.Log; 
 
public class TestContentProvider extends ContentProvider { 
 
    @Override 
    public int delete(Uri uri, String selection, String[] selectionArgs) { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "delete"); 
        return 0; 
    } 
 
    @Override 
    public String getType(Uri uri) { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "gettype"); 
        return null; 
    } 
 
    @Override 
    public Uri insert(Uri uri, ContentValues values) { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "insert"); 
        return null; 
    } 
 
    @Override 
    public boolean onCreate() { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "create"); 
        return false; 
    } 
 
    @Override 
    public Cursor query(Uri uri, String[] projection, String selection, 
            String[] selectionArgs, String sortOrder) { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "query"); 
        return null; 
    } 
 
    @Override 
    public int update(Uri uri, ContentValues values, String selection, 
            String[] selectionArgs) { 
        // TODO Auto-generated method stub  
        Log.e("H3c", "update"); 
  &nb

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,