Android:其他应用无法访问我应用内部的文件
创始人
2024-10-13 15:00:27
0

您需要在自己的应用程序中实现ContentProvider。如下所示,Content Provider管理应用程序内部和外部之间共享数据的访问:

首先,创建一个类来实现Content Provider:

public class MyContentProvider extends ContentProvider {
    public static final Uri CONTENT_URI = Uri.parse("content://com.example.myapp.provider/data");
    private static final int DATA_LIST = 1;
    private static final int DATA_ITEM = 2;
    private static final UriMatcher uriMatcher;

    static {
        uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
        uriMatcher.addURI("com.example.myapp.provider", "data", DATA_LIST);
        uriMatcher.addURI("com.example.myapp.provider", "data/#", DATA_ITEM);
    }

    @Override
    public boolean onCreate() {
        // initialize your database or files here
        return true;
    }

    @Override
    public String getType(Uri uri) {
        switch (uriMatcher.match(uri)) {
            case DATA_LIST:
                return "vnd.android.cursor.dir/vnd.com.example.myapp.provider.data";
            case DATA_ITEM:
                return "vnd.android.cursor.item/vnd.com.example.myapp.provider.data";
            default:
                throw new IllegalArgumentException("Unsupported URI: " + uri);
        }
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        Cursor cursor = null;
        switch (uriMatcher.match(uri)) {
            case DATA_LIST:
                cursor = // query the database or files here and return the cursor
                break;
            case DATA_ITEM:
                // handle single item query here
                break;
            default:
                throw new IllegalArgumentException("Unsupported URI: " + uri);
        }
        return cursor;
    }

    @Override
    public Uri insert(Uri uri, ContentValues values) {
        long id = // insert data into database or files here
        return ContentUris.withAppendedId(CONTENT_URI, id);
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
        int count = // update data in database or files here
        return count;
    }

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        int count = // delete data from database or files here
        return count;
    }
}

然后,在AndroidManifest.xml文件中添加以下内容:


这会向Android系统注册ContentProvider。最后,在您的

相关内容

热门资讯

随着!潮汕汇鱼虾蟹修改器,微信... 随着!潮汕汇鱼虾蟹修改器,微信微乐辅助器使用教程,窍要教程(了解有挂)-哔哩哔哩1、进入游戏-大厅左...
透视规律!德普之星辅助工具如何... 透视规律!德普之星辅助工具如何设置,德普之星透视免费(透视)确实有挂(发现有挂)-哔哩哔哩在进入德普...
此事备受玩家关注!小程序跑得快... 此事备受玩家关注!小程序跑得快的辅助,新海贝之城万能辅助器,练习教程(证实有挂)-哔哩哔哩亲,关键说...
透视苹果版!德普之星怎么开辅助... 透视苹果版!德普之星怎么开辅助,德普之星私人局透视(透视)一贯是真的挂(竟然有挂)-哔哩哔哩所有人都...
透视游戏!德普之星辅助工具如何... 透视游戏!德普之星辅助工具如何设置,德普软件(透视)切实有挂(有挂详情)-哔哩哔哩1、游戏颠覆性的策...
网友热议!wpk系统是否存在辅... 您好,wpk系统是否存在辅助行为这款游戏可以开挂的,确实是有挂的,需要了解加去威信【48527505...
为切实保障!wepoker模拟... 为切实保障!wepoker模拟器哪个好用,pokemmo脚本辅助器下载,举措教程(有挂存在)-哔哩哔...
透视透视!德普之星透视辅助插件... 透视透视!德普之星透视辅助插件,德扑圈透视挂(透视)真是有挂(有挂秘籍)-哔哩哔哩德普之星透视辅助插...
这一问题亟待解决!逗好乐游辅助... 这一问题亟待解决!逗好乐游辅助器,小程序广东雀神智能插件安装下载,办法教程(有挂方式)-哔哩哔哩1、...
透视能赢!德普之星私人局辅助免... 透视能赢!德普之星私人局辅助免费,德普之星私人局辅助免费(透视)都是存在有挂(有挂教程)-哔哩哔哩1...