diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
index beb1a8f..bc2757a 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
@@ -20,6 +20,7 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.provider.Settings.Global;
 import android.view.View;
 
 import com.android.internal.logging.MetricsLogger;
@@ -40,7 +41,11 @@
         setContentView(R.layout.fingerprint_enroll_introduction);
         setHeaderText(R.string.security_settings_fingerprint_enroll_introduction_title);
         findViewById(R.id.cancel_button).setOnClickListener(this);
-        findViewById(R.id.learn_more_button).setOnClickListener(this);
+        final View learnMoreButton = findViewById(R.id.learn_more_button);
+        learnMoreButton.setOnClickListener(this);
+        if (Global.getInt(getContentResolver(), Global.DEVICE_PROVISIONED, 0) == 0) {
+            learnMoreButton.setVisibility(View.GONE);
+        }
         final int passwordQuality = new ChooseLockSettingsHelper(this).utils()
                 .getActivePasswordQuality(UserHandle.myUserId());
         mHasPassword = passwordQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
@@ -91,7 +96,9 @@
     private void launchFingerprintHelp() {
         Intent helpIntent = HelpUtils.getHelpIntent(this,
                 getString(R.string.help_url_fingerprint), getClass().getName());
-        startActivity(helpIntent);
+        if (helpIntent != null) {
+            startActivity(helpIntent);
+        }
     }
 
     @Override
