8

修正:SG3では「アクティビティを保持しない」がデフォルトです

サムスンギャラクシーS3はデフォルトで「アクティビティを維持しない」がオンになっています(2つの場所のテストモデルは両方ともこの障害が発生していました)

もちろん、これは、Cordova / PhoneGapアプリ内を含む他のアクティビティが開始されるとすぐに、アプリのメインアクティビティが破棄されることを意味します。コールバックイベントは明らかに発生しません。

オプションをオフに切り替えると、問題が修正されます。

ブランド/モデルに関係なく開発者向けオプションを確認してください。たとえば、AsusNexus7タブレットにはこのデフォルトがありません。


基本的なテストアプリをセットアップしました。ボタンとimgタグ+変更されていないCordovaがありますindex.js

ボタンonclickが呼び出していcapturePhoto()ます:

function onPhotoURISuccess(imageURI) {
  console.log(imageURI);
  var largeImage = document.getElementById('largeImage');
  largeImage.style.display = 'block';
  largeImage.src = imageURI;
}

function capturePhoto() {
  navigator.camera.getPicture( onPhotoURISuccess, onFail, 
     { quality: 20, allowEdit: true, destinationType: Camera.DestinationType.FILE_URI });
}

function onFail(message) {
  alert('Failed because: ' + message);
}

シミュレーターとAsusNexus7タブレットでアプリを実行すると、カメラが期待どおりに開き、写真の撮影と確認が可能になり、FILE_URIで戻って画像src属性が設定されます。

ただし、Samsung Galaxy SIIIでは(異なる場所で2つを使用してテストしています)、カメラが開き、キャプチャが可能になり、確認後、テストアプリを再開しようとして終了します。

誰かがこの問題を知っていますか、そしてそれを修正する方法はありますか?

AndroidManifest.xml参考までに、アクティビティノードに追加の設定を追加しました: android:screenOrientation="nosensor"-これでは問題は解決しませんが(ここではストローをつかんでいます)。

他の情報:

  • 電話はAndroid4.1.2を実行しています
  • ターゲティングSDK16
  • コルドバv2.4.0rc1

phonegapのテスト済みバージョン-1.8-2.4rc(すべてがクラッシュするか、イメージを返すことができません。)

スタックトレースの関連部分はここにあります:http://pastie.org/5974920

アップデート

  • サイモンマクドナルドの提案に関して。

でテスト済みquality : 100

以前と同じ結果。

  • 1.9-2.1爆弾(メッセージなし)
  • 2.2-2.3アプリに戻りますが、画像はありません。
  • 2.4-アプリが停止して申し訳ありません-「管理された」クラッシュ

動作していません。

4

3 に答える 3

7

Samsung Galaxy 3では、開発者向けオプションの[アクティビティを保持しない]がデフォルトでオンになっています。

これにより、他のアクティビティ(この場合はカメラ)を起動したときにメインアクティビティがガベージコレクションされます。

オプションをオフにすると、問題が解決します。

于 2013-03-25T22:40:21.080 に答える
2

私はSamsungGalaxyNoteIIを持っています。私も同じ問題を抱えていました。AndroidManifest.xmlでこれを変更しましたが、SamsungとHTCThunderboltで動作するようになりました

<uses-feature android:name="android.hardware.camera" android:required="false"/>

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>

<activity  android:configChanges="orientation|keyboardHidden" />
于 2013-03-06T20:18:32.787 に答える
1

バックグラウンドプロセスをオフにしましたか?もしそうなら、これはすべてのAndroidカメラを壊します。インテントで返されるデータをnullにすることはできません。

また、これをAndroidマニフェストに必ず追加してください。

android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"  

この場合、再開状態を処理する何かが壊れたため、2.4.xがクラッシュするという事実はバグですが、あるインテントから別のインテントにデータを渡すにはバックグラウンドプロセスが必要です。そうでない場合、これはどのインテントでも機能しません。 Androidアプリケーション。少なくとも、このケースを適切に処理し始めます。アプリの終了はバグの可能性があると思うので、ここでチケットを確認したいと思います:https ://issues.apache.org/jira/browse/CB

更新https ://issues.apache.org/jira/browse/CB-2533を参照してください

于 2013-02-07T21:55:05.103 に答える