import android.app.Activity;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.ResultReceiver;
mResultReceiver = (ResultReceiver)getIntent().getParcelableExtra(
ConnectivityManager.EXTRA_PROVISION_CALLBACK);
- // TODO: Move isProvisioningNeededButUnavailable into ConnectivityManager and check
- // it here to short-circuit and fail.
-
int tetherType = getIntent().getIntExtra(ConnectivityManager.EXTRA_ADD_TETHER_TYPE,
ConnectivityManager.TETHERING_INVALID);
String[] provisionApp = getResources().getStringArray(
if (DEBUG) {
Log.d(TAG, "Starting provisioning app: " + provisionApp[0] + "." + provisionApp[1]);
}
+
+ if (getPackageManager().queryIntentActivities(intent,
+ PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
+ Log.e(TAG, "Provisioning app is configured, but not available.");
+ mResultReceiver.send(ConnectivityManager.TETHER_ERROR_PROVISION_FAILED, null);
+ finish();
+ return;
+ }
+
startActivityForResultAsUser(intent, PROVISION_REQUEST, UserHandle.CURRENT);
}