2016-01-24 268 views
1

我已經用MIT App Inventor 2製作了一個簡單的培訓應用程序。該應用程序記錄到日誌文件,並且我製作了一個小的QPython腳本來分析日誌和顯示統計信息。如何從MIT App Inventor Activity Starter啓動QPython腳本並完全退出?

我想使用Activity Starter來啓動我的Python腳本,但是我一直無法弄清楚正確的Action,ActivityClass,ActivityPackage和Extra [x]來使它工作。我在我的Android手機上運行adb以查找正確的字符串,但是當我嘗試時發現「601沒有找到相應的活動」。

這裏的亞行輸出grepped爲「qpyplus」運行腳本時:

I/Timeline(1898): Timeline: Activity_launch_request id:com.hipipal.qpyplus time:15752330 
I/ActivityManager( 862): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.hipipal.qpyplus/com.hipipal.qpylib.MPyApi bnds=[540,456][807,756] (has extras)} from uid 10116 on display 0 
V/WindowManager( 862): addAppToken: AppWindowToken{1687ec32 token=Token{120bbc3d ActivityRecord{1ef9e994 u0 com.hipipal.qpyplus/com.hipipal.qpylib.MPyApi t5112}}} to stack=1 task=5112 at 0 
V/WindowManager( 862): Adding window Window{e90d72c u0 Starting com.hipipal.qpyplus} at 18 of 26 (after Window{30168e12 u0 edu.mit.appinventor.aicompanion3/edu.mit.appinventor.aicompanion3.Screen1}) 
I/Timeline(31680): Timeline: Activity_launch_request id:com.hipipal.qpyplus time:15752447 
I/ActivityManager( 862): START u0 {cmp=com.hipipal.qpyplus/jackpal.androidterm.Term (has extras)} from uid 10335 on display 0 
V/WindowManager( 862): addAppToken: AppWindowToken{382fc5e2 token=Token{1e492ead ActivityRecord{2e34dfc4 u0 com.hipipal.qpyplus/jackpal.androidterm.Term t5112}}} to stack=1 task=5112 at 1 
V/WindowManager( 862): Based on layer: Adding window Window{e90d72c u0 Starting com.hipipal.qpyplus} at 18 of 26 
V/WindowManager( 862): Adding window Window{390e635c u0 com.hipipal.qpyplus/jackpal.androidterm.Term} at 18 of 27 (before Window{e90d72c u0 Starting com.hipipal.qpyplus}) 
I/ActivityManager( 862): Displayed com.hipipal.qpyplus/jackpal.androidterm.Term: +117ms (total +245ms) 
I/Timeline( 862): Timeline: Activity_windows_visible id: ActivityRecord{2e34dfc4 u0 com.hipipal.qpyplus/jackpal.androidterm.Term t5112} time:15752597 

我讀過docs並試圖破譯日誌和填充標籤。我也發現了一個從2010年到老問題的類似問題,但似乎QPython從那時起就一直在繼續,因爲配方不對應於我的logcat(也不起作用)。請看兩個選項的截圖(我是一個菜鳥,所以我不允許嵌入圖像)。

screenshot of two options that don't work enter image description here 有誰知道我應該怎麼格式化這個腳本運行活動啓動?

更新!
我想,泰富已經把我放在了正確的軌道上。我遵循他的建議,用新的權限重新編譯.apk並安裝它,以便它可以運行一個shell腳本。我現在的問題是,QPython似乎完全忽略了我要求它在啓動時運行腳本。終端打開好,但我的腳本不運行。如果我手動運行命令,它運行得很好。

有什麼想法?

My new config that almost works.

+0

看到[文件](http://ai2.appinventor.mit.edu/reference/other/activitystarter。 html)如何設置屬性...你可能想嘗試一些東西併發布你的塊的截圖... – Taifun

+0

感謝您的建議@Taifun。我確實閱讀過文檔,但忽略了這個說法或者張貼截圖。抱歉!我相應地編輯了我的問題。 –

+0

如果使用action ='android.intent.action.MAIN',package ='com.hipipal.qpyplus'和class ='com.hipipal.qpylib.MPyApi',會發生什麼?你能從你找到的網絡提供一個鏈接到這些信息嗎? – Taifun

回答

0

http://i.hizliresim.com/mLqgP4.png

action="com.hipipal.qpyplus.action.MPyApi" 
classname="com.hipipal.qpyplus.MPyApi" 
packagename="com.hipipal.qpyplus" 
extras={"app" : "appid", "act" : "onPyApi", "flag" : "onQPyExec", "param" : "", "pycode" : "print 'selam'\nprint 'naber'"} 

這是工作的罰款:)