Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Popup window in any app

i want to Popup dialog at a specific time in any app my code :

 public class testPOPDialog extends Activity {
/** Called when the activity is first created. */
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    mHandler.postDelayed(mUpdateTimeTask, 1000);



}
private Runnable mUpdateTimeTask = new Runnable() {
       public void run() {
           AlertDialog d = new AlertDialog.Builder(testPOPDialog.this)
            .setTitle("tanchulai")
            .setMessage("bucuo de tanchulai")

            .create();

        d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
        d.show();     
       }
    };

}

it give me

12-03 10:12:18.162: ERROR/AndroidRuntime(571): android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRoot$W@43dd71c0 -- permission denied for this window type

what is this permission if i delete d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); my app is correct.....

like image 390
pengwang Avatar asked Dec 03 '10 10:12

pengwang


People also ask

How do I make my apps pop-up on windows?

Right-click on the app icon of your choosing, then select Pop out app.

What is pop-up window in mobile?

android.widget.PopupWindow. This class represents a popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity.


2 Answers

Add this permission to your manifest:

android.permission.SYSTEM_ALERT_WINDOW
like image 147
Mathias Conradt Avatar answered Sep 21 '22 12:09

Mathias Conradt


First of all thanks to Mathias Lin

I am new to Android so it was hard to me to set permission knowing from Mathias Lin's answer. Because I didn't know how to set permission and where in the manifest file.

Finally I did it by help of Mathias Lin's answer. So I made the answer elaborate.


In mainfest file use

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

after

<uses-sdk
    android:minSdkVersion=...
    android:targetSdkVersion=... />

as

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
like image 43
MaxEcho Avatar answered Sep 21 '22 12:09

MaxEcho