7

質問があります。マニフェストファイルで--
を指定するuses-feature ... "android.hardware.faketouch" android:required="true"アプリケーションは、タッチスクリーンデバイスで実行できるアプリケーションがどのように市場に表示されるのでしょうか。


プレフィックスバージョンは参照を返し、ポストフィックスバージョンは正しい値を返すという仮定/実現ですか?

いいえ、なぜそう思いますか?これは組み込みの演算子であり、コンパイラーは必要に応じて実装できます。

「合法的な」例はコンパイルされる可能性がありますが、シーケンスポイントなしで同じ変数を複数回読み書きするため、未定義の動作が発生します。

4

2 に答える 2

14

の要件を指定した場合android.hardware.faketouch、すべての正規のタッチ デバイスには引き続きアプリが表示されます。

faketouchは のスーパーセットでtouchscreenあるため、実際のタッチスクリーンを持っている人は誰でも を暗黙的にサポートfaketouchしています。サポートされているすべてのアクションを実行できるからです。

ただし、暗黙のタッチスクリーン エントリをオーバーライドして追加する必要があるという点で、Market にはちょっとした癖がありますrequired=false。これを怠ると、市場では必要に応じてタッチスクリーンとフェイクタッチの両方がリストされ、フェイクタッチのみのデバイスにはまだ表示されません。

したがって、マニフェストには次を含める必要があります。

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

これにより、faketouch のみのデバイスを含むすべてのデバイスでアプリを表示できます。

于 2011-07-26T07:56:33.070 に答える