42

Androidの多くの機能では、マニフェストで使用許可を設定する必要があります。これらの値は、どのデバイスが市場でそれらを見るかを決定します。ただし、この機能がオプションである場合はどうすればよいですか...多くのデバイスで実行できるが、少数のデバイスでのみ許可が必要な場合はどうすればよいですか?

例:複数の機能と大量のコンテンツを備えたアプリを考えてみましょう。アプリには会社に電話をかけるためのボタンがあります。これは、番号を書き留めたり、電話アプリにコピーして貼り付けたりするのとは対照的に、便利な機能です。ただし、これは必須ではありません。

その機能が使用され、電話の許可がアプリに追加された場合、それはすべて電話にとっては問題ありませんが、タブレットは市場でアプリを見ることができません。

この問題の一般的な解決策は何ですか?

異なる権限で複数のアプリを作成することもできますが、そのアプローチには問題があります(余分な開発時間、メンテナンスの一貫性を維持することの難しさ、レビューと評価が異なるアプリに分割されている場合、異なる種類のオプションの権限が異なる場合組み合わせごとにアプリが必要になる場合があります)。

アプリは、機能が利用可能かどうかをプログラムで確認し、デバイスに応じて有効または無効にすることができます。それに関する問題は、アプリに権限がない場合、その機能を使用しようとするとクラッシュすることです。また、アプリに権限がある場合、一部のデバイスはアプリをで見つけることができません。市場。

場合によっては、問題を回避するために、アプリから不要な機能を完全に削除できる場合があります。これらの機能は、それをサポートするデバイスに「あると便利」であるため、これも優れたソリューションではありません。

はい、私は知っていますAndroidで「オプションの」権限を持つことは可能ですか?同様の質問です。新しい情報や、もしあれば人々が見つけた他の回避策を期待しています...この問題の解決策は何ですか?私が上にリストしたもの以外に他のアプローチを持っている人はいますか?

4

1 に答える 1

82

この問題の一般的な解決策は何ですか?

その特定の問題については<uses-feature android:name="android.hardware.telephony" android:required="false"/>、マニフェストに追加して、この機能がオプションであることを示します。次に、を使用PackageManagerhasSystemFeature()て、実行時にデバイスに不要な機能があるかどうかを判断できます。

于 2012-02-15T19:35:35.173 に答える