2 个版本
0.1.1 | 2022 年 4 月 19 日 |
---|---|
0.1.0 | 2022 年 2 月 14 日 |
#247 in 开发工具
每月 309,412 次下载
在 2,592 个crate中使用 (22 个直接使用)
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()?;