首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Pyjnius正确访问Android类

如何使用Pyjnius正确访问Android类
EN

Stack Overflow用户
提问于 2015-06-08 21:28:44
回答 1查看 1.3K关注 0票数 1

我很难使用Pyjnius来访问Android类"ContactsContract.Intents.Insert“。

我一直以以下例子为例:

Pyjnius:http://kivy.org/planet/2012/08/pyjnius-accessing-java-classes-from-python/

要访问的Java : MediaRecorder

但是,我真正想要使用Pyjnius访问的是安卓中的"ContactsContract.Intents.Insert“,它可以在我的安卓手机上添加一个新的联系人。

安卓类:https://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html

到目前为止,这就是我所拥有的,但我在这列清单上感到困惑:

代码语言:javascript
复制
from jnius import autoclass

Data = autoclass("ArrayList")
data = Data()

MyContacts = autoclass("ContactsContract.Intents.Insert")

mycontacts = MyContacts()
data.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE)
data.put(Organization.COMPANY, "Android")
data.add(mycontacts)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-06 12:09:55

Intents.Insert是一个包含静态字符串常量的静态类。当我想从我正在构建的应用程序中添加联系人时,我也遇到了同样的问题。最后,我编写了一个包含静态方法的类,该方法将在java中添加一个联系人,并将其添加到我的buildozer.spec文件中进行编译。我知道这并不是你想要的,但它给了你一个公平的想法,当遇到这样的问题时,周围有一个工作。实际上,将Python代码与Java混合起来相当容易。Kivy很适合Android应用的原型开发,但是和pyjnius一样,文档非常有限。

Java代码

代码语言:javascript
复制
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Intents;
import android.app.Activity;
import android.content.Intent;

public class Contact{

    public static void addContact(Activity pyActivity, String name, String phone, String email){
        Intent i = new Intent(Intent.ACTION_INSERT);
        i.setType(Contacts.CONTENT_TYPE);
        i.putExtra(Intents.Insert.NAME, name);
        i.putExtra(Intents.Insert.PHONE, phone);
        i.putExtra(Intents.Insert.EMAIL, email);
        pyActivity.startActivity(i);
    }

}

python脚本

代码语言:javascript
复制
PythonActivity = autoclass("org.kivy.android.PythonActivity")
Contact = autoclass("Contact")
Contact.addContact(PythonActivity.mActivity, "Steve", "666", "steve666@gmail.com")

然后最后将Conact.java添加到buildozer.spec文件中。

代码语言:javascript
复制
android.add_src = Contact.java
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30719424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档