Yeah, we need the Dialogs if we can get them, but obviously we can't count on that happening in 100% of cases. Pushing notifications seems like a necessary fallback.

Not sure how kosher this is, but how about this?

        private String get_main_activity() {
                PackageManager pm = context.getPackageManager();
                String packageName = context.getPackageName();

                try {
                        final int flags = PackageManager.GET_ACTIVITIES;
                        PackageInfo packageInfo = pm.getPackageInfo(packageName, flags);
                        for( ActivityInfo ai : packageInfo.activities ) {
                                if( ai.exported ) {
                                        return ai.name;
                                }
                        }
                } catch (NameNotFoundException e) {
                        e.printStackTrace();
                }
                Log_e(TAG, "get_main_activity() failed");
                return "";
        }