1

我已经通过 AndroidManifest.xml 文件成功地将我的自定义文件扩展名与我的应用程序关联起来,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="$AndroidVersionCode$"    
                android:versionName="$BundleVersion$" 
                package="$AppIdentifier$" 
                android:windowSoftInputMode="adjustPan"
                android:hardwareAccelerated="$AndroidHardwareAcceleration$"
                xmlns:android="http://schemas.android.com/apk/res/android" >
    <supports-screens
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:xlargeScreens="true"
            android:resizeable="true"
            android:anyDensity="true"
            />

    <application android:label="@string/app_name" 
                             android:icon="@drawable/icon" 
                             android:hardwareAccelerated="$AndroidHardwareAcceleration$">
            <activity android:label="@string/app_name" 
                android:name=".TelerikCallbackActivity"
                android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
                android:launchMode="standard"
                                android:theme="@android:style/Theme.Black.NoTitleBar" >
                    <intent-filter >
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
                  <intent-filter
                    android:label="Sonic Images"
                    android:priority='1'>
                    <category
                      android:name='android.intent.category.DEFAULT'
                    ></category>
                    <action
                      android:name='android.intent.action.VIEW'
                    ></action>
                    <data
                      android:host='*'
                      android:pathPattern='.*\\.simg'
                      android:scheme='file'
                    ></data>
                  </intent-filter>
            </activity>
    </application>
    <uses-sdk android:minSdkVersion="8" />
</manifest>

但是,我仍然有两个问题/疑问:

(1) 当我单击 .simg 类型的文件时,我的应用程序会加载。但所有 .simg 文件仍显示有问号 (?) 图标。我的应用程序图标在应用程序本身的主屏幕上正确显示,当它显示在选择列表中时,图标显示正确,但对于文件资源管理器中的单个 .simg 文件则不正确。如何让图标在文件资源管理器中正确显示?

(2) 当我点击一个 .simg 文件时,我的应用程序会加载,但是我如何捕获被点击的文件的名称,请记住我不是用 Java 开发,而是使用 Kendo UI / Cordova框架。

感谢您的任何帮助。

4

1 回答 1

0

1)要更改文件图标,请尝试在您的图标属性上放置一个图标属性,intent-filter本答案所示-

<intent-filter android:icon="your_drawable-resource"
               android:label="your_string_resource"
               android:priority="integer"> 
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.YOUR_CUSTOM_FILE_EXTENSION" />
</intent-filter>

2)要捕获打开的文件路径,请参阅此答案中的示例-

Intent intent = getIntent();
intent.getData().toString();

当然那是 Java 代码,因此您必须将其转换为 Cordova的WebIntent 。也许这篇文章会对读者有所帮助。它显示了以下脚本。这里的url变量可能是您文件的路径:

<script src="cordova-1.6.1.js"></script>
<script src="webintent.js"></script>
<script>
function init() {
    document.addEventListener("deviceready",deviceReady,false);
}
function deviceReady() {
    console.log("Device Ready");
    window.plugins.webintent.getUri(function(url) {
        if(url !== "") {
            // url is the url the intent was launched with
            document.querySelector("#test").innerHTML = "URL was "+url;
        }
    });

}
</script>
于 2015-08-14T05:40:06.863 回答