使用SL4A Python在Android桌面上显示数据(示例)

时间:2013-10-09 17:48:51

标签: android python sl4a

我想知道如何使用SL4A在Android桌面上显示简单和简短的数据(例如:来自正在运行的脚本的温度数据)。我的脚本从网络获取温度数据,我尝试通过通过toast,toast和对话框显示它,但我希望它仍然可以在屏幕上访问。 我不认为webview是一个选项,但是我不能为简单的文本框编写xml代码,因为我不应该这样做。 这是正确的吗?我在哪里可以得到一个(非常)简单的代码示例在xml中显示屏幕上的文本(不是全屏)? 谢谢!

1 个答案:

答案 0 :(得分:0)

我只是重新阅读了你的问题,有一些全屏网页浏览的例子,但据我所知,webview是一种全有或全无的交易。如果你想要我们Xml,请查看Fullscreenwrapper2因为它允许你使用类似的xml布局到本机java应用程序,从那里你可以查找xml布局的示例并修改以适应。

您想要一个小部件还是一个对话框?如果你只想要一个对话框,你可以使用dialogCreateAlert

import android

droid = android.Android()

title=("Your Tittle")
content=("Your content")

droid.dialogCreateAlert(title, content)
droid.dialogShow()

但是如果你想要它在一个小部件上,我发现最简单的解决方案是使用minimalistic text widget你可以通过tasker或直接使用本地意图传递数据。

通过Tasker:

import android, time

droid = android.Android()
class Task():
    SET_VARIABLE = 547
    def new_task(self):
        self.action_cnt = 0
        self.extras = {'version_number': '1.0', 'task_name': 'task' + str(time.time()), 'task_priority': 9 }
    def set_var(self, varname, value):
        self.action_cnt += 1
        self.extras['action' + str(self.action_cnt)] = {'action': self.SET_VARIABLE, 'arg:1': varname, 'arg:2': value, 'arg:3': False, 'arg:4': False, 'arg:5': False}
    def run_task(self):
        taskIntent = droid.makeIntent('net.dinglisch.android.tasker.ACTION_TASK', None, None, self.extras).result
        droid.sendBroadcastIntent(taskIntent)
    def set_var_now(self, varname, value):
        self.new_task()
        self.set_var(varname, value)
        self.run_task()

t = Task()
t.set_var_now("%Var", "Your variable value")

直接通过本地意图(您可以使用本地变量字段在MT中选择此项):

import android

droid = android.Android()

activity = 'com.twofortyfouram.locale.intent.action.FIRE_SETTING'
extras = {}
extras['de.devmil.minimaltext.locale.extras.VAR_NAME'] = 'Your Variable name'
extras['de.devmil.minimaltext.locale.extras.VAR_TEXT'] = 'Your Variable content'

packagename =  'de.devmil.minimaltext'
classname = 'de.devmil.minimaltext.locale.LocaleFireReceiver'

intent = droid.makeIntent(activity, None, None, extras, None, packagename, classname).result

droid.sendBroadcastIntent(intent)