我正在用kivy和python制作android应用程序,我有创建TXT格式记录的功能,在我的项目中,它与.PY文件位于同一文件夹中,但我知道一旦创建.apk,文件将存储在哪里可能会出现问题。 例如,我想将Tracking.txt文件存储在Android设备的下载文件夹中。请问我如何定义这个
这就是它现在的定义,它应该安全/打开应用程序所在的文件
import kivy
from datetime import datetime
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
from kivy.core.audio import SoundLoader
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.utils import platform
import os
if platform == 'android':
import android
from android.permissions import request_permissions, Permission
request_permissions([Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE])
from android.storage import primary_external_storage_path
dir = primary_external_storage_path()
download_dir_path = os.path.join(dir, 'Download')
Window.size = (480, 800)
class MyGrid(GridLayout):
def __init__(self, **kwargs):
super(MyGrid, self).__init__(**kwargs)
self.cols = 1 # Set columns for main layout
self.inside = GridLayout(cols=2, row_force_default=True,
row_default_height=50, padding=20,
spacing=10) # Create a new grid layout
self.add_widget(Label(text="Tracking Number \n Checker", halign="center", font_size=40)) # Top Label
self.inside.add_widget(Label(text="Work Number:", halign="center", font_size=20)) # Add a label widget
self.worknumb = TextInput(text_validate_unfocus=True, multiline=False, font_size=20, halign="center")
self.inside.add_widget(self.worknumb)
self.inside.add_widget(Label(text="Tracking \nNO. Scan:", halign="center", font_size=20))
self.tracknumb = TextInput(multiline=False, font_size=15, halign="center") # Create a Text input box stored in the name variable
self.inside.add_widget(self.tracknumb) # Add the text input widget to the GUI
self.add_widget(self.inside) # Add the interior layout to the main
self.submit = Button(text="Submit", font_size=40, size_hint =(.5, .5)) # Submit button
self.add_widget(self.submit)
self.submit.bind(on_press=self.send_tracknumb)
self.resultbox = Image(source="status.png") #image box on bottom
self.add_widget(self.resultbox)
Window.bind(on_key_down=self.pressed)
Clock.schedule_once(self.focus_worknumb, 1)
def pressed(self, instance, keyboard, keycode, text, modifiers):
if keycode == 40 or keycode == 13 or keycode == 8:
self.send_tracknumb(None)
def focus_worknumb(self, _):
self.worknumb.focus = True
def focus_tracknumb(self, _):
self.tracknumb.focus = True
def send_tracknumb(self, _):
tracknumb = self.tracknumb.text
worknumb = self.worknumb.text
errorsound = SoundLoader.load("incorrect.mp3") # add sound to the scanning
correctsound = SoundLoader.load("correct.ogg")
self.tracknumb.text = "" # Reset text to blank in each text input
Clock.schedule_once(self.focus_tracknumb, 0.2)
f = open(os.path.join(download_dir_path, 'tracking.txt'), "a")
tr = tracknumb
wr = worknumb
time = str(datetime.now())
编辑:我使用了下面帖子中建议的功能,但现在它显示它找不到Android,我从Pycharm中弹出的建议中安装了什么,但是没有找到存储和前置。 我在进口部分遗漏了什么
您可以使用下面的代码片段来获取android中的
Download
目录路径。然后根据需要使用路径相关问题 更多 >
编程相关推荐