如何使用Kivy for Android以root身份读/写文件?

时间:2011-12-05 09:15:36

标签: android python kivy

我想在我的Kivy应用程序中写入/ etc / hosts,我肯定是一个需要测试的root设备。我尝试了几种方法但总是让我的应用退出而没有任何警告或错误。

我试过了:

subprocess.Popen("su -c touch /etc/hosts", shell = True)

subprocess.Popen("su -c bash -c touch /etc/hosts", shell = True)

subprocess.Popen(["su", "-c", "bash -c touch /etc/hosts"])

以及它们的几种组合。每次我都可以获得su app消息框询问我是否允许并按下“允许”,但我的应用程序在此之后退出。

编辑:logcat输出为http://pastebin.com/YMT5Vxra

非常感谢有人提出任何建议!

1 个答案:

答案 0 :(得分:2)

您的错误表明string-escape不是已知编码。 Kivy正在发布一个精简版的Python及其libs,而不是所有的编码。您可以尝试的是:

  • 抓住python-for-android项目
  • 进入私人/ lib /编码
  • 将文件从您的计算机复制到此目录(/usr/lib/python2.7/encodings/string_escape.pyo)<< li>
  • 重建您的应用

那应该可行。

一旦kivy没有发送你想要的文件,pgs4a-kivy项目就不好了。这就是我开始python-for-android项目的原因。在最终发布中,你将拥有你想要或不想要的力量。