我正在開發Titanium SDK 2.1.3併爲Android部署,我跟着this article將我的應用程序包含在可以打開類似application/*,image/*和audio/*的MIME類型的應用程序列表中。它使我的Android清單看起來像這樣:Android - 如何使用Titanium 2.1.3打開電子郵件附件?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nenvo.com.desktop" android:versionCode="1"
android:versionName="1">
<uses-sdk android:minSdkVersion="8" />
<!-- TI_MANIFEST -->
<application android:icon="@drawable/appicon"
android:label="Desktop Lite" android:name="DesktopLiteApplication"
android:debuggable="false">
<!-- TI_APPLICATION -->
<activity android:name=".DesktopLiteActivity"
android:label="Desktop Lite" android:theme="@style/Theme.Titanium"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="content" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- open any mime type file -->
<data android:mimeType="application/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="text/*" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity android:name="org.appcelerator.titanium.TiActivity"
android:configChanges="keyboardHidden|orientation" />
<activity android:name="org.appcelerator.titanium.TiTranslucentActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Translucent" />
<activity android:name="org.appcelerator.titanium.TiModalActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.Translucent" />
<activity android:name="ti.modules.titanium.ui.TiTabActivity"
android:configChanges="keyboardHidden|orientation" />
<activity android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" />
<service android:name="org.appcelerator.titanium.analytics.TiAnalyticsService"
android:exported="false" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>
現在,當電子郵件的附件試圖打開我的應用程序啓動時,問題是,我不知道該如何找回我想要的文件打開,我想在我開始跟蹤和恢復事件對我的Android應用程序:
activity.addEventListener('start', function() {
Ti.API.log('*** Start Event Called ***');
var args = activity.getIntent().getData(); // this is null
functions.handleFunction(args);
});
activity.addEventListener('resume', function() {
Ti.API.log('*** Resume Event Called ***');
var args = activity.getIntent().getData(); //this is also null
functions.handleFunction(args);
});
當我試圖檢索數據的意圖,我得到空的結果。當我顯示意圖對象,我得到如下:
{"flags":0,"type":null,"data":null,"action":null}
爲什麼我沒有收到關於意圖的任何數據?難道我做錯了什麼?
編輯
我注意到,當我從可以打開一個特定的文件的應用程序列表中打開我的應用程序,就好像是之前關閉我的應用程序將啓動(即使先前已經打開) 。我試圖讓這個加載過程中的意圖我app.js文件,並讓我吃驚我的意圖的數據,這是如下:
content://com.android.email.attachmentprovider/1/2/RAW
如何打開呢?如何從該地址檢索文件,以便將其保存到我的應用程序目錄中?
EDIT 2
我試圖從那個地址是這樣的文件:
var tmpFile = Ti.Filesystem.getFile(String(currentActivity.getIntent().getData()));
但我得到的是一個文件對象,它是這樣的:
{
"writable": false,
"symbolicLink": false,
"parent": null,
"readonly": true,
"nativePath": "content://com.android.email.attachmentprovider/1/2/RAW",
"executable": false,
"name": "api-eventos.txt",
"directoryListing": null,
"hidden": false,
"size": 0
}
它確實顯示原始文件的名稱,但大小爲0並且看起來不像它包含原始文件的任何信息,我嘗試讀取它,結果爲空。我如何從附件地址獲取文件?