Android的内容提供商给未知的URL内容:// COM [英] android content provider gives Unknown URL content://com

查看:302
本文介绍了Android的内容提供商给未知的URL内容:// COM的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个自定义的内容提供商,我得到一个错误信息

I am trying to create a custom content provider and I get a error message

未知的URL内容://com.example.test.samplecontentprovider/yay

Unknown URL content://com.example.test.samplecontentprovider/yay

我在我的清单和内容提供商以下信息

I have the following info in my manifest and content provider

  <provider
    android:authorities="com.example.test.samplecontentprovider"
    android:multiprocess="true"
    android:name="com.example.test.SampleContentProvider"></provider>

AUTHORITY = "com.example.test.samplecontentprovider" 

我在这里可能是错的,请建议。

where could I be wrong, please suggest.

我还包括源$ C ​​$ C包在这里。 http://www.fileserve.com/file/p4eNVgK

I am also including the source code package here. http://www.fileserve.com/file/p4eNVgK

推荐答案

在这里你去项目菲克桑

http://esilo.pl/Yea.zip

几件事情...  雷诺回答......但也有多个错误:

few things ... Renaud answer ... but there are more errors:

// there is no such constructor ... Android looking for simple SampleContentProvider()
//public SampleContentProvider(Context context){
//  mContext=context;
//}

@Override
public boolean onCreate() {
    //so we move mContext initialization here
    mContext = getContext();
    dbHelper = new DatabaseHelper(mContext);
    return true;
}

接下来的:

public static final class ContentProviderHelper  {
    private ContentProviderHelper() {}
    //private static final String BASE_PATH = "yay"; we don't need it
    public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); //you dont need it + "/" + BASE_PATH);
    public static final String CONTENT_ITEM_TYPE = ContentResolver.CURSOR_ITEM_BASE_TYPE + 
                                                        "/vnd." + COMPANY_NAME + "." + TABLE_NAME;//yay it's stupid :P BASE_PATH;
    public static final String CONTENT_TYPE =   ContentResolver.CURSOR_DIR_BASE_TYPE + 
                                                    "/vnd." + COMPANY_NAME + "." + TABLE_NAME;//yay it's stupid :P BASE_PATH;
    public static final String ID = "_id";
    public static final String TITLE = "title";
    public static final String TEXT = "text";
}

下一个test.java:

next in test.java:

    Uri uri = getContentResolver().insert(
            // we should replace SampleContentProvider.ContentProviderHelper.CONTENT_URI with CONTENT_URI + TABLE_NAME
            Uri.withAppendedPath(SampleContentProvider.ContentProviderHelper.CONTENT_URI, SampleContentProvider.TABLE_NAME), values);

这篇关于Android的内容提供商给未知的URL内容:// COM的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆