2009-05-24 20 views
2

私はいくつかの検索を行い、明るさを調整したい場合、私は私的なフレームワークを使用する必要があり、リンゴはそれを拒否するということを発見しました。iphoneの画面の明るさを取得する方法

明るさの値を取得したいだけの場合(調整するのではなく、表示する値を取得する)、リンゴが受け入れる方法はありますか?

答えて

1

公開フレームワークのドキュメント化されていないAPIを使用することは、必ずしも悪いとは限りません。私は、UIAlertViewsに接続性をチェックしたり、テキストフィールドを追加したりするなど、文書化されていないメソッドを使っている多くの人を知っています。

一方、プライベートフレームワークへのリンクは、非常に揮発性があり、3.0から削除されたり名前が変更されたりする可能性があるため、さらに悪化します。

あなたのケースの詳細はわかりませんが、私的フレームワークまたは公開されていないAPIの区別は重要です。

+0

Appleがどのように反応するかは決して分かりません。そしてあなたがよく述べているように、実装は新しいOSで壊れる可能性があります。 – Kriem

1

「Appleは許可しますか?」という質問に答える方法はありません。リスク許容度を選択して提出する必要があります。個人的には、私は文書化されていないものから離れています。しかし、自分のプログラムをエッジ上のもの(実際にプライベートではない一般的に文書化されていないもの)で強化する場合、私は自分のプログラムを変更に弾力性を持たせようとします。

これを実行する主な方法の1つは、リンクしようとしているものが機能しているかどうかを確認することです。メソッドの場合は、呼び出す前に-respondsToSelector:を使用できます。関数について、あなたは関数が存在するかどうかをテストすることができます。私は、Mac上でそれを使用して、iPhoneはGCC4を使用しているためweak_importは、ポータブルでなければなりませんEnsuring Backward Compatibilityを参照してくださいので、(

extern void SomeFunction() __attribute__((weak_import)); 

if (SomeFunction != NULL) { 
    SomeFunction(); 
} 

あなたはiPhone上でそれをテストする必要があります。これまで、私はいつも、実際にiPhone上でこれを必要と回避するために、いくつかのトリックを見つけることができました。)

このすべての鍵は、文書化されていない機能なしで必ずあなたのプログラム機能を作ることです。そうすれば、たとえAppleがそれを拒否しても、それを引き出すのは簡単です。

私の場合、これは文書化された方法でやり遂げるために多くの時間を費やしてきたことや、ユーザーエクスペリエンスを大幅に改善し、Appleの基本的な意図。例えば、あなたがそれを働かせることができたとしても、バックグラウンドで実行することは、Appleのルールの精神に明確な違反です。他のものは、UI要素の内部ビューのように公開されていないため、非公開です。

アプリの外で持続するように画面の明るさを変更すると、基本的な再生ルール(サンドボックスに留まる)に違反しているように見えます。現在の画面の明るさを得ることは、そのようには聞こえません(私はあなたがそれをどうすればよいかわかりませんが)。

関連する問題