Adobe AIR特定のタイプのファイルを開くためにAndroidアプリが自動的に使用されるように設定しようとしています。私はこれの多くの例を見てきましたが、正しく動作するものを見つけることができませんでした(SOに関する多くの関連する質問は4-6歳であり、おそらく正確ではありません)。インテントフィルタを使用してAdobe AIRアプリケーションでファイルタイプを開く
私のアプリで拡張子.abcのバイナリファイルを開きたいとしましょう。 (私はそれに任意の機能を追加しようとする直前に呼び出しが動作して取得しようとしている)
<android>
<manifestAdditions>
<![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.VIBRATE" />
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch" />
<application>
<activity android:name="com.example.myapp.OpenFileActivity" android:label="MyApp">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/abc"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/octet-stream"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="content" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.abc" />
<data android:host="*" />
</intent-filter>
</activity>
</application>
</manifest>
]]>
</manifestAdditions>
</android>
AS3コード:これは私が自分のアプリケーション記述子に追加したものです
//...
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
//...
private function onInvoke(e:InvokeEvent):void {
trace(e.toString());
}
私がインストールした後アプリケーションディスクリプタで上記のコードを使用しているアプリで、ABCファイルを開こうとすると(Gmailの添付ファイルをタップするなどして)、すぐに「[app name] has stopped。」というメッセージがすぐに表示されます。
私はlogcatを通じて見れば、私はエラーを参照してください。
E/AndroidRuntime(13835): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myapp/com.example.myapp.OpenFileActivity}:
java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.OpenFileActivity" on path: DexPathList[[zip file "/data/app/com.example.myapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.myapp-1, /vendor/lib, /system/lib]]
を私はandroid:name="com.example.myapp.OpenFileActivity"
を削除した場合、私はビルドエラーを取得:Tag <activity> missing required attribute name.
私は何をしないか、間違っているのでしょうか? これはAdobe AIRアプリケーションであり、ネイティブのAndroidアプリではありません。