全部 文章 问答 分享 共找到1057个相关内容
[文章] 内容提供者-什么是内容提供者
内容提供者内容提供者,作为android的四大组件之一,说明他的重要性。但是我还是一再强调,它在实际开发中,使用得比较比较少的。什么是内容提供者
[文章] 内容提供者-自定义内容提供者
内容提供者-自定义内容提供者我们在学习广播的时候,我们首先是学习监听系统发出的广播,然后再去自定广播。
[文章] 内容提供者-内容观察
内容提供者-内容观察这个标题怪怪的,对吧!
[问答] Android4.0观察不能观察短信内容提供者中的内容变化吗
问:拉大锯在bilibili发布的Android学习视频-P8内容提供者的第15个视频中,为什么用Android4.0观察短信内容提供者内容变化失败,但是Android6.0可以啊?
[文章] Android四大组件之内容提供者(ContentProvider)
内容提供者就相当于对外部提供了一个操作当前应用数据库表的API,通过UriMatcher匹配相应的uri,达到对数据库中不同表CRUD的操作。
[文章] 内容提供者-获取手机通讯里的联系人
内容提供者-获取手机通讯里的联系人前面我们学习完了内容提供者的相关知识,现在呢,我们都以应用场景为基础去学习怎么通过内容提供者获取数据,实现场景功能。在上一篇文章中,我们完成了向日历里插入提醒事件。
[文章] 内容提供者-读取短信内容,读取短信验证码
内容提供者-读取短信内容我们已经实现向日历中插入提醒事件了内容提供者-向日历中插入提醒事件然后我们又从通讯录中获取到联系人数据内容提供者-获取手机通讯里的联系人接下来,当然连短信也不会放过啦!
[问答] 使用内容提供者和Glide加载相册图片,加载不出任何图片怎么回事

使用内容提供者和Glide加载相册图片,加载不出任何图片怎么回事


2022-12-25 08:22 · 内容提供者
[文章] 内容提供者-复习android数据库的知识
内容提供者-复习android数据库的知识创建数据库编写数据库DAO编写数据库测试类android数据库的课程传送门androidsqlite数据库课程创建数据库packagecom.sunofbeaches.contentproviderdemo.db
2019-10-30 17:43 · 数据库 / 内容提供者 / android基础 / db / provider
[文章] 内容提供者-获取媒体库里的图片
内容提供者-获取媒体库里的图片对于媒体内容提供者的应用场景有哪些呢?
[文章] 内容提供者-向日历中插入提醒事件
内容提供者-向日历中插入提醒事件比如说你要写一个购物,卖票的软件,那么用户可以设置抢票提醒:使用内容提供者,我们向日历里插入提醒事件,比如说什么时候要抢购商品呀,家人的生日呀,小孩上学,纪念日之类的。
2019-11-02 02:55 · 日历 / 内容提供者 / provider / 安卓 / android
[文章] 31、Android开发基础之内容提容ContentProvider
好,回到我们的内容提供者上面:ContentProvider内容提供者,我们从字面上认识,就是一个提供内容的东西!这东西常用吗?
[文章] 总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费项目的流程
总结使用SpringBoot+Dubbo创建服务提供者项目和服务消费项目的流程这是我学习的笔记,有什么不对请帮忙指出来(1)总结使用SpringBoot+Dubbo创建服务提供者项目的流程①创建SpringBoot
2020-06-19 23:26 · java / spring / SpringBoot / Zookeeperr / dubbo
[问答] 内容提供者-读取短信验证码的问题
setContentView(R.layout.activity_verify_code); initView(); initEvent(); //注册短信内容提供者的观察
[问答] 内容提供者无用?
如图,虚拟机弹出来了选择了允许所以后面获取到了内容。真机上没弹出了,所以后面也没获取到内容。求没弹出的原因
2020-04-28 00:29 · 内容提供者
[问答] Android11以上使用ContentResolver报错

这是内容提供者应用主要的代码

2024-03-31 14:03 · Android / 内容提供者 / ContentResolver

[问答] 求助:内容提供者-日历属性不打印
今天升级了一下AS,logcat窗口就变成这个样子了


红色圈出来的是我自己的打印log,后面就没有其他属于我的打印log(已经截取了完整的logcat窗口,下面没有其他内容

2022-09-27 20:28 · 求助
[问答] 安卓跨程序无法获取内容提供者

1.在写TestProvider时报了个Failed to find provider info for com.example.contentprvider3的异常

Logcat报错部分

2021-11-29 07:31:15.268 5562-5562/com.example.testprovider D/MainActivity: onClick

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider D/MainActivity: cursor------null

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String[] android.database.Cursor.getColumnNames()' on a null object reference

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at com.example.testprovider.MainActivity.RemoteUser(MainActivity.java:34)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at java.lang.reflect.Method.invoke(Native Method)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at java.lang.reflect.Method.invoke(Method.java:372)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.view.View.performClick(View.java:4780)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.view.View$PerformClick.run(View.java:19866)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.os.Handler.handleCallback(Handler.java:739)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.os.Handler.dispatchMessage(Handler.java:95)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.os.Looper.loop(Looper.java:135)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at android.app.ActivityThread.main(ActivityThread.java:5254)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at java.lang.reflect.Method.invoke(Native Method)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at java.lang.reflect.Method.invoke(Method.java:372)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)

2021-11-29 07:31:15.271 5562-5562/com.example.testprovider W/System.err:   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

2.项目ContentProvider部分代码

package com.example.contentprvider3.Provider;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.example.contentprvider3.utils.Constants;
import com.example.contentprvider3.Databasehelper.UserDatabasehelper;


public class UserProvider extends ContentProvider {
    private static final  String SCHEMA="content://";
    private static  final  String AUTHORITY="com.example.contentprvider3.Provider.UserProvider";
    private static  Uri uri_provider =Uri.parse(SCHEMA+AUTHORITY);

    private UserDatabasehelper muserDatabaseHelper = null;
    private static final  int User_Match_Code = 1;
    private static UriMatcher suriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    static {
        suriMatcher.addURI(AUTHORITY,null,User_Match_Code);
    }

    @Override
    public boolean onCreate() {
        muserDatabaseHelper = new UserDatabasehelper(getContext());
        return false;
    }

    @Nullable
    @Override
    public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) {
      //分配规则
        int result = suriMatcher.match(uri);
        if (result==User_Match_Code){
            SQLiteDatabase db = muserDatabaseHelper.getReadableDatabase();
            Cursor cursor = db.query(Constants.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);

        }else{
            //不匹配规则
            throw new IllegalArgumentException("参数错误");
        }

        return null;
    }

    @Nullable
    @Override
    public String getType(@NonNull Uri uri) {
        return null;
    }

    @Nullable
    @Override
    public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
        return null;
    }

    @Override
    public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
        return 0;
    }

    @Override
    public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) {
        return 0;
    }
}

3.ContentProvider的Manifest文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.contentprvider3">
<permission android:name="contentprvider3._READ_PERMISSION"
    android:protectionLevel="normal"/>
    <permission android:name="contentprvider3._WRITE_PERMISSION"
        android:protectionLevel="normal"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.ContentPrvider3">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <provider
            android:exported="true"
            android:authorities="com.example.contentprvider3.Provider.UserProvider"
            android:grantUriPermissions="true"
            android:name=".Provider.UserProvider"/>

    </application>

</manifest>

4.TestProvider部分代码

package com.example.testprovider;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {
 private static final  String SCHEMA="content://";
 private static  final  String AUTHORITY="com.example.contentprvider3.Provider.UserProvider";
 private static  Uri uri_provider =Uri.parse(SCHEMA+AUTHORITY);
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void RemoteUser(View view) {
        Log.d(TAG, "onClick");
        ContentResolver contentResolver = getContentResolver();

        Cursor cursor = contentResolver.query(uri_provider, null, null, null, null);

        try {

            Log.d(TAG, "cursor------"+cursor);
            String[] columnNames2 = cursor.getColumnNames();
            for (String columnName : columnNames2) {
                Log.d(TAG, "columnName---" + columnName);
            }

            while (cursor.moveToNext()) {
                Log.d(TAG, "------------");
                for (String columnName : columnNames2) {
                    int columnname = cursor.getColumnIndex(columnName);
                    String value = cursor.getString(columnname);
                    Log.d(TAG, columnName + "------" + value);
                    Log.d(TAG, "----------------");
                }

            }
            cursor.close();
        }catch (Exception e){e.printStackTrace();

        }


        }


         }


5.TestProvider的Manifest文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.testprovider">
    
    <uses-permission android:name="ContentPrivider3._READ_PERMISSION"/>
    <uses-permission android:name="ContentPrivider3._WRITE_PERMISSION"/>
    
<queries>
    <package android:name="com.example.contentprvider3"/>
    <provider android:authorities="com.example.contentprvider3.Provider.UserProvider"/>

</queries>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TestProvider">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


2021-11-29 15:38 · AndroidProvider
[文章] Android开发学习路线
四大组件之ActivieyAndroid四大组件之ActivieyAndroid四大组件之广播Android四大组件之广播Android四大组件之服务Android四大组件之服务Android四大组件之内容提供者
[分享] Android上层应用源代码
在我们学习内容提供者的时候,我们需要去阅读Android上层应用的源码,在我们学习四大组件的时候,想去打开相机呀,设置呀,系统原生应用的时候。我们需要去阅读源码,查看里的意图过滤规则。
2019-10-27 22:04 · 安卓 / 源码 / 应用 / android / app
[问答] 老师,服务器怎么接收的http请求啊
老师,您还记得那个内容提供者的获取媒体库文件的那个教程么,有个端口为9102的服务器,我自己就很好奇服务器的一些东西,就看了一下这个文件上传的源码,以为自己看得懂,结果就是不了解这个怎么通过路径来执行这段代码的
2020-04-18 00:52 · 服务器接收请求
[文章] ContentProvider 模仿SpringMVC 进行开发
但是看起来像web开发1.基本思路模仿springMvc,构建一个dispatcherServlet,进行请求转发2.约定为了实现这个目的,同时简化开发,进行以下约定:内容提供者实现的方法:仅实现query
2023-10-03 19:48 · ContentProvider / SpringMVC / Andoird
[问答] 关于Fileprovide我有几点疑问
>

之前学过内容提供者知道

2023-04-27 08:09 · Android
[文章] 选择手机本地视频,加载视频,学习内容提供者视频后,MediaStore使用
1,首页2,本地视频3,选择视频4,加载视频gitHub地址https://github.com/alvpotato/SelectLocalVideo
[问答] 学习内容提供者第8节视频,为什么插入数据后监听不到数据的变化?
+selfChange);//此Log没有打出//获取新的内容}});privatevoidaddUser(){ContentResolvercontentResolver=getContentResolver
2020-04-23 17:05 · Android
[文章] 嗯哼,你居然不知道什么是RPC?
一次RPC调用,本质就是服务调用和服务提供者之间的一次网络信息交换的过程。
2021-02-02 14:45 · java / RPC / 网络IO / IO / 通信
[问答] 内容提供者P17(图片媒体库),获取表结构报错

在打印输出图片媒体库表结构过程中,打印部分属性后报错Unable to convert BLOB to string

完整的报错信息如下:

该部分的代码为:

package com.example.imagepicker;

import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;

import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;

public class PickerActivity extends AppCompatActivity {

    private static final String TAG = "PickerActivity";
    private static final int LOADER_ID = 1;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_picker);

        ContentResolver contentResolver = getContentResolver();
//        Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
//        Log.d(TAG, "imageUri ------> " + imageUri);
        Uri imageUri = MediaStore.Files.getContentUri("external");
        Cursor cursor = contentResolver.query(imageUri, null, null, null, null);
        String[] columnNames = cursor.getColumnNames();
        while (cursor.moveToNext()) {
            Log.d(TAG, "==============");
            for (String columnName : columnNames) {
                @SuppressLint("Range") String value = cursor.getString(cursor.getColumnIndex(columnName));
                Log.d(TAG, columnName + "------> " + value);
            }
            Log.d(TAG, "==============");
        }
        cursor.close();
//        initLoadManger();
    }

    private void initLoadManger() {
        LoaderManager loaderManager = LoaderManager.getInstance(this);
        loaderManager.initLoader(LOADER_ID, null, new LoaderManager.LoaderCallbacks<Cursor>() {
            @NonNull
            @Override
            public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
                if (id == LOADER_ID) {
                    return new CursorLoader(PickerActivity.this,
                            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                            new String[]{"_data", "_display_name", "date_modified"},
                            null, null, "data_added DESC");
                }
                return null;
            }

            @SuppressLint("Range")
            @Override
            public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
                if (data != null) {
                    String[] columnNames = data.getColumnNames();
                    while(data.moveToNext()) {
                        Log.d(TAG, "==============");
                        for (String columnName : columnNames) {
//                            @SuppressLint("Range") String value = data.getString(data.getColumnIndex(columnName));
                            Log.d(TAG, columnName + "------> " + data.getString(data.getColumnIndex(columnName)));
                        }
                        Log.d(TAG, "==============");
                    }
                    data.close();
                }
            }

            @Override
            public void onLoaderReset(@NonNull Loader<Cursor> loader) {

            }
        });
    }
}


尝试过网上的一些解决方案,但都没能成功解决这个问题,希望各位大佬指点一二,不甚感激


2022-10-08 10:35 · 求助 / 内容提供者
[问答] 内容提供者15节视频获取验证码,sUriMatcher.match(uri)匹配失败
日志输出为什么跟视频的不同,有rawcompileSdkVersion29buildToolsVersion"29.0.2"
2020-04-25 22:36 · Android
[文章] Android开发根据号码phoneNumber查询联系人
Android开发根据号码phoneNumber查询联系人是不是想到内容提供者,今天我用到了,我就记一下吧。
2021-01-19 11:19 · Android / 数据库 / 联系人 / 电话 / phoneNumber
[文章] Android各个版本的新功能(4.2-11.0)
的功能变化消息通知需要指定渠道编号才能推送增加了新的权限设置“安装其他应用”增加了画中画模式的配置及其适配处理普通应用不再允许操作热点Android9.0的功能变化静态注册的广播全面失效增加了新的权限设置“前台服务”彻底删除秘钥提供者
2021-01-23 11:16 · Android / 安卓 / 版本 / 功能变化
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 36