Android C++ 调用 Java 方法

前言

前段时间在写一个特性,需要在 native 层将信息持久化到 dropbox 当中。但是由于在 Android N 上,dropbox 相关的 client 端和 server 端都是由 Java 来实现的,在 native 层并没有相关的代理,因此我们不能在 native 层借助普通的 C++ 调用来实现这个功能,只能调用相关的 Java 方法来实现。
本篇文章就来介绍一下 C++ 如何调用 Java 方法,以及上面这个功能如何实现。(基于 Android N)

一、思路

1. DropBoxManager

将信息添加到 dropbox,需要借助于 DropBoxManager:
frameworks/base/core/java/android/os/DropBoxManager.java

    /**
     * Stores human-readable text.  The data may be discarded eventually (or even
     * immediately) if space is limited, or ignored entirely if the tag has been
     * blocked (see {@link #isTagEnabled}).
     *
     * @param tag describing the type of entry being stored
     * @param data value to store
     */
    public void addText(String tag, String data) {
        try {
            mService.add(new Entry(tag, 0, data));
        } catch (RemoteException e) {
            if (e instanceof TransactionTooLargeException
                    && mContext.getApplicationInfo().targetSdkVersion < Build.VERSION_CODES.N) {
                Log.e(TAG, "App sent too much data, so it was ignored", e);
                return;
            }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值