This is actually very simple.

See PackageInstaller code here:

https://android.googlesource.com/platform/packages/apps/PackageInstaller/+/android-cts-4.1_r4

Intent filters for such actions are:

<activity android:name=".PackageInstallerActivity"
		android:configChanges="orientation|keyboardHidden|screenSize"
		android:excludeFromRecents="true">
	<intent-filter>
		<action android:name="android.intent.action.VIEW" />
		<action android:name="android.intent.action.INSTALL_PACKAGE" />
		<category android:name="android.intent.category.DEFAULT" />
		<data android:scheme="file" />
		<data android:mimeType="application/vnd.android.package-archive" />
	</intent-filter>
	<intent-filter>
		<action android:name="android.intent.action.INSTALL_PACKAGE" />
		<category android:name="android.intent.category.DEFAULT" />
		<data android:scheme="content" />
		<data android:scheme="file" />
	</intent-filter>
</activity>
<activity android:name=".UninstallerActivity"
		android:configChanges="orientation|keyboardHidden|screenSize"
		android:excludeFromRecents="true"
		android:theme="@android:style/Theme.DeviceDefault.Dialog.NoActionBar">
	<intent-filter>
		<action android:name="android.intent.action.VIEW" />
		<action android:name="android.intent.action.DELETE" />
		<action android:name="android.intent.action.UNINSTALL_PACKAGE" />
		<category android:name="android.intent.category.DEFAULT" />
		<data android:scheme="package" />
	</intent-filter>
</activity>

so if you want to install your .apk file from SD card – just write something like that:

String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

for uninstallation:

Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);

be aware that by default INSTALL_NON_MARKET_APPS option is disabled. You may want to check this option and show user friendly dialog before trying to install the app:

int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0);
if (result == 0) {
    // show some dialog here
    // ...
    // and may be show application settings dialog manually
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_APPLICATION_SETTINGS);
    startActivity(intent);
}

enjoy