import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.Arguments;

@ReactMethod
public void getInstalledApps(Promise promise) {
    try {
        PackageManager pm = getReactApplicationContext().getPackageManager();
        List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

        WritableArray appNames = Arguments.createArray();

        for (ApplicationInfo packageInfo : packages) {
            if (pm.getLaunchIntentForPackage(packageInfo.packageName) != null) {
                appNames.pushString(pm.getApplicationLabel(packageInfo).toString());
            }
        }

        promise.resolve(appNames);
    } catch (Exception e) {
        promise.reject("Error", e);
    }
}
