2 个版本

0.1.1 2022 年 4 月 19 日
0.1.0 2022 年 2 月 14 日

#247 in 开发工具

Download history · Rust 包仓库 51264/week @ 2024-02-28 · Rust 包仓库 53652/week @ 2024-03-06 · Rust 包仓库 50393/week @ 2024-03-13 · Rust 包仓库 55433/week @ 2024-03-20 · Rust 包仓库 56828/week @ 2024-03-27 · Rust 包仓库 51757/week @ 2024-04-03 · Rust 包仓库 61822/week @ 2024-04-10 · Rust 包仓库 63283/week @ 2024-04-17 · Rust 包仓库 61629/week @ 2024-04-24 · Rust 包仓库 62111/week @ 2024-05-01 · Rust 包仓库 64178/week @ 2024-05-08 · Rust 包仓库 76534/week @ 2024-05-15 · Rust 包仓库 70705/week @ 2024-05-22 · Rust 包仓库 78680/week @ 2024-05-29 · Rust 包仓库 80353/week @ 2024-06-05 · Rust 包仓库 63697/week @ 2024-06-12 · Rust 包仓库

每月 309,412 次下载
2,592 个crate中使用 (22 个直接使用)

MIT/Apache

6KB

ndk-context

为 Rust crate 提供一个稳定的 API,用于与 Android 平台进行接口交互。它由运行时初始化,通常是由 ndk-glue,也可以由 Java 或 Kotlin 代码在嵌入现有 Android 项目时初始化。


lib.rs:

为 Rust crate 提供一个稳定的 API,用于与 Android 平台进行接口交互。它由运行时初始化,通常是由 ndk-glue,也可以由 Java 或 Kotlin 代码在嵌入现有 Android 项目时初始化。

let ctx = ndk_context::android_context();
let vm = unsafe { jni::JavaVM::from_raw(ctx.vm().cast()) }?;
let env = vm.attach_current_thread();
let class_ctx = env.find_class("android/content/Context")?;
let audio_service = env.get_static_field(class_ctx, "AUDIO_SERVICE", "Ljava/lang/String;")?;
let audio_manager = env
    .call_method(
        ctx.context() as jni::sys::jobject,
        "getSystemService",
        "(Ljava/lang/String;)Ljava/lang/Object;",
        &[audio_service],
    )?
    .l()?;

无运行时依赖