2012-03-28 1 views
0

ブラウザをサービスにプッシュしたり、サービスからブラウザを起動するために、ホーム/ onpause()を押すと、ユーザがアンドロイドブラウザを開いた後にキャッチすることは可能ですかユーザーが家を押したり電話をロックしたりしたときに開いたままにしますか?サービスでアンドロイドブラウザを開いたままにする

たとえば、ユーザーがブラウザからインターネットストリームを聴いていて、自宅を押したり画面をロックしたりすると、音声は途切れてしまいます。しかし、私は、ブラウザを開いたままにして、オーディオが引き続き再生されるようにしたいと考えています。私はサービスがこれを達成する唯一の方法であるという印象を受けている。

答えて

0

ホームボタン(onpause)を押して、アプリがバックグラウンドであるか画面がロックされている間にブローワーがフラッシュの再生を継続できるようにしたときに、サービス内でウェブビューを作成できました。だから私は私のアプリの外でブラウザをキャプチャを使用することができませんでしたが、私はその経験をエミュレートする効果的なWebviewを作ることができました。

私はhereの指示に従ってwebviewを作成し、サービスを作成しました。フラッシュが正常に再生することが許可されたコードの一部(android:hardwareAccelerated="true")であった:マニフェストで

<application android:hardwareAccelerated="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 

。それは素晴らしい作品です! (ただし、APIは3.0以上である必要があります)

0

実際、これはAndroidでは不可能です(そしてそうすべきです)。そのような性質を持つすべてのクリックやものは、アプリを経由する必要があります。 であり、悪い状況であるになります。これはAndroidのバグであると広く考えられています。基本的には、アプリの外では何も制御できないようにするべきです。代わりに、アプリ内のクリックだけを受け入れることができます。この動作を実現するには、標準のAndroidブラウザを独自の実装で拡張し、代わりにユーザーが使用するようにする必要があります。

これを行うことができない理由を確認するには、セキュリティの影響を考慮する必要があります。標準のユーザーエクスペリエンスを乗り越えるために他のアプリケーションから機能を制御して再ルーティングできます。以前のバージョンのAndroidでは可能だったいくつかの状況(Googleを「クリックジャック」していくつかを見ることができます)がありますが、悪意のあるアプリではこれをやってはいけません。

+0

ありがとう、これはお勧めします。適切な行動に従うために私がどのように実装できるか考えていますか?私は自分のアプリでwebviewを作って、そのアプリをサービスにすることができますか、それとも本質的に同じものですか? – Nick

+0

あなたは理解していません。サービスはUIに関連付けられていないことを行うためのものです。ブラウザは本質的にUIに関連付けられます。サービスを用意する代わりに、たとえば、戻るボタンを操作するなど、UIイベントをキャッチして適切に処理するだけです。ただし、ホームボタンの動作を変更することはできません。 (試してはいけません!) –

+0

私はwebviewとサービスで私が求めていたことをすることができました。 – Nick

関連する問題