현재 안드로이드 개발하고 있는 개발자입니다.
실력이 미천하다보니 도저히 해결되지 않아 글 올려봅니다.

안드로이드 2.0부터 Contact에서는 QuickContact 기능을 제공합니다.
Contact에서 icon을 누르면 누른위치 위에 SMS나 e-mail로 이동할 수 있는 icon 리스트가 뜹니다.
해당 화면을 캡처했으나 회사에서 업로드가 되지 않아 부득이하게 글로 설명합니다.

현재, 위와 같은 기능을 제가 개발하고 있는 어플리케이션에서도 구현해달라는 요구사항때문에 구현중인데요.
QuickContact 소스를 확인하기 위해 풀소스를 받아 분석 중에 있습니다.

그 가운데 PolicyManager.java와 IPolicy.java 파일의 makeNewWindow() 와 같은 기능을 구현할 수 있는 방법이 있는지 궁금합니다.

----- 호출하는 부분 -----
Contact 쪽의 QuickContactWindow.java 파일입니다.

Window mWindow = PolicyManager.makeNewWindow(mContext);
mWindow.setCallback(this);
mWindow.setWindowManager(mWindowManager, null, null);
mWindow.setContentView(R.layout.quickcontact);

제 생각에는 위 부분에서 새로운 window를 생성한 후
해당 윈도우의 x,y 좌표 및 높이와 너비를 세팅하는 등의 일을 하는 소스인 듯 합니다.
-----------------------------------------------------------------------------

-----PolicyManager.java -----
package com.android.internal.policy;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.Window;

import com.android.internal.policy.IPolicy;

/**
 * {@hide}
 */
public final class PolicyManager {
    private static final String POLICY_IMPL_CLASS_NAME =
        "com.android.internal.policy.impl.Policy";

    private static final IPolicy sPolicy;

    static {
        // Pull in the actual implementation of the policy at run-time
        try {
            Class policyClass = Class.forName(POLICY_IMPL_CLASS_NAME);
            sPolicy = (IPolicy)policyClass.newInstance();
        } catch (ClassNotFoundException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be loaded", ex);
        } catch (InstantiationException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be instantiated", ex);
        } catch (IllegalAccessException ex) {
            throw new RuntimeException(
                    POLICY_IMPL_CLASS_NAME + " could not be instantiated", ex);
        }
    }

    // Cannot instantiate this class
    private PolicyManager() {}

    // The static methods to spawn new policy-specific objects
    public static Window makeNewWindow(Context context) {
        return sPolicy.makeNewWindow(context);
    }

    public static LayoutInflater makeNewLayoutInflater(Context context) {
        return sPolicy.makeNewLayoutInflater(context);
    }

    public static WindowManagerPolicy makeNewWindowManager() {
        return sPolicy.makeNewWindowManager();
    }
}
------------------------------------------------------------------------------

----- IPolicy.java -----
package com.android.internal.policy;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.Window;

/**
 * {@hide}
 */
/* The implementation of this interface must be called Policy and contained
 * within the com.android.internal.policy.impl package */
public interface IPolicy {
    public Window makeNewWindow(Context context);

    public LayoutInflater makeNewLayoutInflater(Context context);

    //public WindowManagerPolicy makeNewWindowManager();
}
-----------------------------------------------------------------------------

dialog로 구현하려 했으나,
parent window가 어두워지고, 클릭이 되지 않는 점 등이 QuickContacts와 달라 부득이하게
풀소스에 있는 소스를 참고하여 개발 중에 있습니다.

이와 관련하여 조금이라도 아시는 분 있다면.....