2012-01-02 14 views
17

ユーザの情報を追加したいアンドロイドの着信画面でカスタマイズしたポップアップを作成したいと思います。 私は、ポップアップがバックグラウンドからのクリック可能性を無効にしないようにして、ユーザーが依然として電話に出ることができるようにします。着信画面のポップアップ

多くのアプリケーションがそれを行うので可能です。 MeZeZe appenter image description here

いくつかのより多くの情報:それはかつての活動のクリック可能をキャンセルするので

  1. 半透明のテーマは動作しませんでした。
  2. トーストはオプションではありません - 私はそれを消したくありません。
  3. 私は多くの同様のスレッドがあることを知っています - 私はそれらの多くを読んで、どれも私の特定の問題に答えません。
  4. 私はすでに、コールが受信者であると「何かを起こす」方法を知っているので、INCOMING_CALLアクティビティのヒントは必要ありません。

助けていただければ幸いです! おかげ

+0

あなたはこれをどのようにして得たか教えてください。あなたよりも – png

+0

これについてあなたの解決策を教えてもらえますか?たぶんgithub?ありがとう! – asheinfeld

+0

私は仕事に就いたときに私の解決策を共有します。帰宅することはできません。申し訳ありません:D – Guy

答えて

11

それでもクリッカブルコール活動を維持したい場合は、しかし、あなたのオーバーレイ上の任意のコントロールを持っていない、あなたは活動ののonCreate()メソッドで

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); 

を呼び出すことによってこれを行うことができます通話中に表示されます。

レイアウトパラメータは、このと一緒に使用可能である:これは、いくつかの追加と私のために働いた

android:windowBackground="@android:color/transparent" 
android:windowIsTranslucent="true" 
android:windowAnimationStyle="@android:style/Animation.Translucent" 
+0

ありがとう!少し加えて働いた。回答があなたの回答に追加され、回答が完了します。コメントのコードが間違っています:) – Guy

+0

カスタマイズされた受信画面があるように、完全な画面を制御できる方法はありますか? – user1163234

+0

こんにちは、私は問題があります。私のアプリケーションで(私のアプリのアクティビティのビューのいずれかがfocuにあるなどの)呼び出し中に、これが正常に動作していない場合。アンドロイドの着信画面が表示され、消えて、私のアプリのアクティビティウィンドウが表示され、私がやっているオーバーライド画面も表示されます。助けてください – png

0

BroadcastReceiverで

私は意思に次の行を追加しました:

 i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 

また、PopupWindowアクティビティを起動して着信システム画面の後に来ることを確認するまでに約1.5秒の遅延を追加しました。

<activity android:name=".PopUpIncomingCallActivity" 
      android:theme="@android:style/Theme.Translucent"> 

</activity> 

ポップアップ画面のレイアウトが半透明であることを確認するために:私は追加マニフェストファイルに

。私は、次のpropperties添加PopupscreenレイアウトXMLファイル内

android:windowAnimationStyle="@android:style/Animation.Translucent" 
    android:windowBackground="@android:color/transparent" 
    android:windowIsTranslucent="true" 

しかしこの解決策は依然として欠点を有する:

ポップアップ画面は、着信システムの画面上に表示され、したがって、ユーザが有していますポップアップ画面を閉じるには、着信画面が下に残り、ポップアップ画面が閉じられるまでアクセスできないため、アクションを実行する(ボタンをクリックする、キーを押す、画面に触れるなど)。

0

ロック画面のアクティビティだけでなく、アクティビティ画面の後ろに着信を受けることもできます。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    final Window win = getWindow(); 
    win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED 
      | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 
      | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
    win.addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL); 

    setContentView(R.layout.activity_main); 
関連する問題