如何为使用cargo apk构建的Rust Android应用声明自定义权限(com.oculus.feature.PASSTHROUGH)
如何为使用cargo apk构建的Rust Android应用声明自定义权限(com.oculus.feature.PASSTHROUGH)
我有一个Rust应用,使用cargo apk build为Android编译。我想让AndroidManifest.xml中包含以下权限声明:
<uses-permission android:name="com.oculus.feature.PASSTHROUGH" android:required="true" />
但我所有的尝试都失败了。
Stackoverflow的AI建议在我的Cargo.toml中添加:
[package.metadata.android] permissions = [ "com.oculus.feature.PASSTHROUGH" ]
但这并不奏效。我还尝试过:
[[package.metadata.android.uses-permission]] name = "com.oculus.feature.PASSTHROUGH" required = "false"
以及:
[[package.metadata.android.uses-permission]] "android:name" = "com.oculus.feature.PASSTHROUGH" required = "false"
(最后这个是基于修改cargo-apk源码,派生serde::Serialize并输出修改后的清单来查看效果的尝试)
cargo-apk附带的所有示例都没有展示如何声明权限。
我注意到ndk-build的AndroidManifest结构体中有一个字段:
#[serde(rename(serialize = "uses-permission"))] #[serde(default)] pub uses_permission: Vec<Permission>,
请问正确的配置方式是什么,才能让我的应用获得所需的权限?
备注:内容来源于stack exchange,提问作者Mutant Bob
相关产品推荐
相关产品推荐

