2015-07-13 102 views
1

我在塔斯克(Android)中運行一個用於查詢我的電子郵件的shell腳本,但它總是不會返回任何內容。Tasker Gmail Sqlite3通過標籤獲取電子郵件(收件箱)什麼也沒有返回

sqlite3的 /data/data/com.google.android.gm/databases/[email protected] 「SELECT FROMADDRESS || @ | @'|| dateSentMs || @ | @'|| Subject || '@ | @'|| snippet FROM messages m LEFT JOIN message_labels ml ON m._id = ml.message_messageId JOIN標籤l ON l._id = ml.labels_id WHERE l.name ='^i'ORDER BY m._id DESC;「

這樣的代碼工作 - >

sqlite3的 /data/data/com.google.android.gm/databases/[email protected] 「SELECT FROMADDRESS | |'@ | @'|| dateSentMs ||'@ | @'|| Subject || '@ | @'|| snippet FROM messages ORDER BY _id DESC LIMIT%GMAILcount;「

我該如何得到這個工作?

中的表形成這樣

MESSAGE_LABELS 0 | _id | INTEGER | 0 || 1 1 | labels_id | INTEGER | 1 || 0 2 | message_messageId | INTEGER | 1 || 0 3 | message_conversation | INTEGER | 0 || 0

LABELS 0 | _id | INTEGER | 0 || 1 1 | canonicalName | TEXT | 0 || 0 2 | name | TEXT | 0 || 0 3 | numConversations | TEXT | 0 || 0 4 | numUnreadConversations | TEXT | 0 || 0 5 | color | INTEGER | 0 | 2147483647 | 0 6 | systemLabel | INTEGER | 0 | 0 | 0 7 | systemLabelOrder | INTEGER | 0 | 0 | 0 8 |隱藏| INTEGER | 0 | 0 | 0 9 | labelCo untDisplayBehavior | INTEGER | 0 | 0 | 0 10 | labelSyncPolicy | INTEGER | 0 | 0 | 0 11 |知名度|文本| 0 || 0 12 | lastTouched | INTEGER | 0 | 0 | 0 13 | numUnseenConversations | INTEGER | 0 | 0 | 0 14 | lastMessageTimestamp | INTEGER | 1 | 0 | 0

MESSAGES 0 | _id | INTEGER | 0 || 1 1 | MESSAGEID | INTEGER | 0 || 0 2 |談話| INTEGER | 0 | | 0 3 | fromAddress | TEXT | 0 || 0 4 | toAddresses | TEXT | 0 || 0 5 | ccAddresses | TEXT | 0 || 0 6 | bccAddresses | TEXT | 0 || 0 7 | replyToAddresses | TEXT | 0 || 0 8 | dateSentMs | INTEGER | 0 || 0 9 | dateReceivedMs | INTEGER | 0 || 0 10 | subject | TEXT | 0 || 0 11 | snippet | TEXT | 0 || 0 12 | listInfo | TEXT | 0 || 0 13 | personalLevel | INTEGER | 0 || 0 14 | body | TEXT | 0 || 0 15 | bodyEmbedsExternalResources | INTEGER | 0 || 0 16 | joinedAttachmentInfos | STRING | 0 || 0 17 | synced | INTEGER | 0 || 0 18 | error | TEXT | 0 || 0 19 | clientCreated | INTEGER | 0 || 0 20 | refMessageId | INTEGER | 0 | 0 | 0 21 | forward | INTEGER | 0 | 0 | 0 22 | includeQuotedText | INTEGER | 0 | 0 | 0 23 | quoteStartPos | INTEGER | 0 | 0 | 0 24 | bodyCompressed | BLOB | 0 | NULL | 0 25 | customFromAddress | TEXT | 0 | NULL | 0 26 | queryId | INTEGER | 0 | 1 | 0 27 | spamDisplayedReasonType | INTEGER | 0 || 0 28 | deliveryChannel | INTEGER | 0 || 0 29 | referencesRfc822MessageIds | TEXT | 0 || 0 30 | showSendersFullEmailAddress | INTEGER | 0 || 0 31 | viaDomain | TEXT | 0 || 0 32 | showForgedFromMeWarning | INTEGER | 0 || 0 33 | refAdEventId | TEXT | 0 || 0 34 |永久鏈接| TEXT | 0 || 0 35 |剪輯| INTEGER | 0 | 0 | 0

回答

0

sqlite3的/data/data/com.google.android.gm/databases/[email protected] 「SELECT fromAddress ||'@ | @'|| dateSentMs ||'@ | @'|| Subject ||'@ | @'|| snippet FROM messages m LEFT JOIN message_labels ml ON m.messageId = ml.message_messageId JOIN標籤l ON l._id = ml.labels_id WHERE l.name ='^ i'ORDER BY m._id;「

是正確的。米messageId,而不是僅僅_id

+0

doest它實際上工作?我也試過這個,但結果仍然沒有任何結果 – Tomaski

+0

@tomaski您是否用您的Gmail地址替換YOUREMAIL?你是否檢查過tasker中的root?並在你的根設備上安裝sqlite3? –

+0

您也可以嘗試'^ all'而不是'^ i' –

0

您的查詢似乎是很好,所以我敢打賭,連接表返回NULL

你得到了什麼_id當查詢SELECT * FROM labels WHERE name = '^i'

在我的情況下,這是1,當我運行:

SELECT * FROM message_labels WHERE labels_id=1

我得到....什麼:)所以這裏是哪裏喲你的代碼可能會失敗

p.s.

我不建議安裝SQLiteDebugger - 這是一個巨大的幫助更爲複雜的查詢工作時

相關問題