2015-07-13 56 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 - 这是一个巨大的帮助更为复杂的查询工作时

相关问题