2012-02-28 5 views
4

私は、デバイスにインストールされているFMラジオを開く必要があるアプリケーションを開発しています。 「インターネットFMラジオ」ではなく「FMラジオ」のみです。 iは、パッケージ名を照会し、FMを開くことができる任意の方法があり、アンドロイドアプリケーションからfmラジオを開く

は私が意図

Intent i = new Intent(Intent.ACTION_MAIN); 
PackageManager manager = getPackageManager(); 
i = manager.getLaunchIntentForPackage("com.sec.android.app.fm"); 
i.addCategory(Intent.CATEGORY_LAUNCHER); 
startActivity(i); 

を使用して別のアプリケーションを開く方法を知っているが、私はすべてのデバイスでFMラジオアプリケーションのパッケージ名が必要です無線アプリケーション。今、私は、このデバイスではサムスンギャラクシーS..the FMラジオのパッケージ名を使用していますについては

com.sec.android.app.fm 

は、このパッケージ名は、すべてのAndroidデバイスで同じになりますですです。

助けてくださいいずれか...

答えて

4

CyanogenModは、例えばcom.android.fm使用しています。他のベンダー固有のラジオアプリについてはわかりませんが、パッケージ名が異なる可能性は非常に高いと言えます。今

2、必ずしも相互に排他的なオプションが頭に浮かぶ:ラジオアプリのパッケージ名の有望な候補を収集するために、発見的手法を使用する

  1. *
  2. からラジオのアプリを選択するようにユーザーに要求しますインストールされているすべてのパッケージの一覧

アプリにインターネットアクセス権がある場合は、次のリリースに含まれる静的なパッケージ名のリストをコンパイルするためにどちらの方法でも検出されたパッケージ名を収集できます。新しいユーザーが自分のラジオアプリを手動で選択する必要がなくなることを願っています。

*) PackageManager.getInstalledApplications(...)を使用して".fm."".fm"などの発生のために返さListをスキャンし、あなたは可能な候補のリストを取得することができるかもしれません。

+0

ありがとうございました..私はこれを行うと思います。しかし、 "com.fmanager.xyz"のようなパッケージがあれば、それはそのパッケージを開くでしょう......... – John

+1

それは問題になる可能性があります。 * .fm。*は.fm *よりも高いスコアを取得するか、.fmで終わるパッケージは最高スコアを取得するなど、fmアプリである可能性に基づいて、可能な候補にスコアを適用するオプションがあります。また、「fm」はまったく含まれていない可能性がありますが、「ラジオ」なのか類似している可能性があります。 このヒューリスティックな手法は、もっと派手なように思えるかもしれませんが、より安全な選択肢はオプション2になります。最初の起動時にラジオアプリを選択するようユーザーに求めます.... – caspase

関連する問題