|
18 | 18 | import android.content.Intent;
|
19 | 19 | import android.net.Uri;
|
20 | 20 | import android.os.Bundle;
|
| 21 | +import android.util.Log; |
| 22 | + |
21 | 23 | import androidx.annotation.NonNull;
|
22 | 24 | import androidx.appcompat.app.AppCompatActivity;
|
23 | 25 |
|
24 |
| -import com.google.android.gms.appinvite.AppInviteReferral; |
25 | 26 | import com.google.android.gms.tasks.OnCompleteListener;
|
| 27 | +import com.google.android.gms.tasks.OnFailureListener; |
| 28 | +import com.google.android.gms.tasks.OnSuccessListener; |
26 | 29 | import com.google.android.gms.tasks.Task;
|
27 | 30 | import com.google.firebase.appinvite.FirebaseAppInvite;
|
28 | 31 | import com.google.firebase.dynamiclinks.DynamicLink;
|
|
32 | 35 |
|
33 | 36 | public class MainActivity extends AppCompatActivity {
|
34 | 37 |
|
| 38 | + private final String TAG = "fdl.MainActivity"; |
| 39 | + |
| 40 | + // [START on_create] |
35 | 41 | @Override
|
36 | 42 | protected void onCreate(Bundle savedInstanceState) {
|
| 43 | + // [START_EXCLUDE] |
37 | 44 | super.onCreate(savedInstanceState);
|
38 | 45 | setContentView(R.layout.activity_main);
|
| 46 | + // [END_EXCLUDE] |
| 47 | + |
| 48 | + // [START get_deep_link] |
| 49 | + FirebaseDynamicLinks.getInstance() |
| 50 | + .getDynamicLink(getIntent()) |
| 51 | + .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { |
| 52 | + @Override |
| 53 | + public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { |
| 54 | + // Get deep link from result (may be null if no link is found) |
| 55 | + Uri deepLink = null; |
| 56 | + if (pendingDynamicLinkData != null) { |
| 57 | + deepLink = pendingDynamicLinkData.getLink(); |
| 58 | + } |
| 59 | + |
| 60 | + |
| 61 | + // Handle the deep link. For example, open the linked |
| 62 | + // content, or apply promotional credit to the user's |
| 63 | + // account. |
| 64 | + // ... |
| 65 | + |
| 66 | + } |
| 67 | + }) |
| 68 | + .addOnFailureListener(this, new OnFailureListener() { |
| 69 | + @Override |
| 70 | + public void onFailure(@NonNull Exception e) { |
| 71 | + Log.w(TAG, "getDynamicLink:onFailure", e); |
| 72 | + } |
| 73 | + }); |
| 74 | + // [END get_deep_link] |
39 | 75 | }
|
| 76 | + // [END on_create] |
40 | 77 |
|
41 | 78 | public void createDynamicLink_Basic() {
|
42 | 79 | // [START create_link_basic]
|
@@ -183,4 +220,28 @@ public void onboardingShare(ShortDynamicLink dl) {
|
183 | 220 | // [END ddl_onboarding_share]
|
184 | 221 | }
|
185 | 222 |
|
| 223 | + public Uri buildDeepLink(@NonNull Uri deepLink, int minVersion) { |
| 224 | + String uriPrefix = "https://YOUR_APP.page.link"; |
| 225 | + |
| 226 | + // Set dynamic link parameters: |
| 227 | + // * URI prefix (required) |
| 228 | + // * Android Parameters (required) |
| 229 | + // * Deep link |
| 230 | + // [START build_dynamic_link] |
| 231 | + DynamicLink.Builder builder = FirebaseDynamicLinks.getInstance() |
| 232 | + .createDynamicLink() |
| 233 | + .setDomainUriPrefix(uriPrefix) |
| 234 | + .setAndroidParameters(new DynamicLink.AndroidParameters.Builder() |
| 235 | + .setMinimumVersion(minVersion) |
| 236 | + .build()) |
| 237 | + .setLink(deepLink); |
| 238 | + |
| 239 | + // Build the dynamic link |
| 240 | + DynamicLink link = builder.buildDynamicLink(); |
| 241 | + // [END build_dynamic_link] |
| 242 | + |
| 243 | + // Return the dynamic link as a URI |
| 244 | + return link.getUri(); |
| 245 | + } |
| 246 | + |
186 | 247 | }
|
0 commit comments