Kullanıcıya ek satış fırsatı sunun

5G ağ dilimleme, operatörler, belirli bir kullanım için ağ performansı artışı sağlama yeteneği durumlarda işe yarar. Bu kılavuzda, bir uygulamanın ağı dilimlere ayırarak upsell kullanıcı deneyimini nasıl tetikleyebileceği açıklanmaktadır. akış ve kullanıcı satın almaya karar verirse premium bağlantı isteğinde bulunun.

Kullanıcı deneyimi akışı, kullanıcıya bir operatör açan bir bildirim gösteriyor.
       satın alma işlemini tamamlayabilecekleri web sayfasına yönlendirir.
Şekil 1. Upsell kullanıcı deneyimi akışı örneği.

Premium özellik amaçlarını bildirme

Uygulamanızın ağ yeteneği isteğinin kabul edilmesi için uygulamanız bu özelliği isteme amacını uygulama manifest dosyasında beyan etmelidir. Aksi takdirde, ağ isteği SecurityException hatası vererek başarısız olur.

Bunun için uygulamanızın PackageManager.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES özelliğini AndroidManifest.xml dosyasında açın ve ilgili XML dosyasını dahil edin kaynak dosya.

Manifest dosyasındaki bir özellik bildirimi aşağıdaki gibi görünür:

<property android:name="android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"
          android:resource="@xml/network_capabilities" />

İlgili network_capabilities.xml kaynak dosyası şöyle görünür:

<network-capabilities-declaration> xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-network-capability android:name="NET_CAPABILITY_PRIORITIZE_LATENCY"/>
</network-capabilities-declaration>

Ağ dilimleme upsell akışını tetikle

Bu kod örneğinde, upsell akışının nasıl tetikleneceği ve Premium özelliği satın alındı.

Context mContext;
Network mNetwork;

public void purchasePremiumCapability() {
    TelephonyManager tm = mContext.getSystemService(TelephonyManager.class);
    int capability = TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY;
    if (tm.isPremiumCapabilityAvailableForPurchase(capability)) {
        tm.purchasePremiumCapability(capability, Runnable::run, new Consumer<Integer>() {
            @Override
            public void accept(Integer result) {
                Log.d("Purchase premium capability result: "
                        + TelephonyManager.convertPurchaseResultToString(result));
                switch (result) {
                    case /* success or already purchased */:
                        requestPremiumCapabilityNetwork();
                        break;
                    case /* temporary failure */:
                        // TODO: wait and retry
                        break;
                    case /* hard failure */:
                        // TODO: handle failure
                        break;
                    default:
                        Log.e("Unknown purchase result: " + result);
                }
            }
        });
    } else {
        Log.e("Premium capability is not available for purchase.");
    }
}

public void requestPremiumCapabilityNetwork() {
    ConnectvityManager cm = mContext.getSystemService(ConnectivityManager.class);
    NetworkRequest request = NetworkRequest.Builder()
            .addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY)
            .build();
    cm.requestNetwork(request, new NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
            Log.d("Application can now use the network with the premium capability.");
            mNetwork = network;
        }

        @Override
        public void onLost(Network network) {
            Log.d("Premium capability network is no longer available.");
            mNetwork = null;
            // TODO: clean up anything relying on the premium capability network
        }
    });
}

Aşağıdaki bölümlerde bu süreçte yer alan adımlar bolca fırsat sunuyor.

1. Adım: Premium özelliklerinin kullanılıp kullanılamadığını doğrulayın

Şunu çağırın: isPremiumCapabilityAvailableForPurchase() API yöntemini belirlemek için seçilen premium özelliğin kullanılabilir olup olmadığı. Bu yöntem true değerini döndürür Söz konusu özellik upsell kullanarak operatörden satın alınabiliyorsa bildirim iş akışı.

2. Adım: Upsell bildirim akışını başlatın

Premium özelliğinin kullanılabilir olduğunu onayladıktan sonra uygulamanız, purchasePremiumCapability() "upsell bildirim akışını başlatın. Kullanıcı zaten satın alma işlemi gerçekleştirmediyse tüm ön koşulların karşılandığına karar verirseniz platform, kullanıcıya performans artırma seçeneklerinin sunulduğunu bildiren bir bildirim gösterir kendi operatörlerinden mevcut olabilir. Kullanıcı bildirime dokunursa platform, satın alma işleminin devam edebilmesi için operatörün web görünümünü açar.

purchasePremiumCapability() öğesine iletilen parameter geri çağırması satın alma isteği için sonuç kodu.

Sonuç kodları PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS ve PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED uygulamanızın seçili premium özellik.

Aşağıdaki listede yer alan sonuç kodları, başarısız satın alma isteklerini temsil eder. Görüntüleyin API referansını da inceleyebilirsiniz.

3. adım: Satın alınan premium bağlantıyı isteyin

Upsell bildirim akışı başarılı bir kod döndürürse (PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS veya PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED), uygulamanızda requestNetwork() istenen özelliği karşılayan bir ağ isteğinde bulunun. bir NetworkRequest nesnesi derliyorsanız, eklediğiniz özellik aynı değildir. özelliği ile ilgili daha fazla bilgiyi TelephonyManager API'lere aktarmak için kullanabilirsiniz. Aşağıdaki tabloda TelephonyManager sınıfındaki sabit değerler NetworkCapabilities için karşılık gelen sabitleri gösterir.

TelephonyManager sabiti NetworkCapabilities sabiti
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY NET_CAPABILITY_PRIORITIZE_LATENCY

Satın alma isteği başarısız olursa uygulamanız, varsayılan isteği göndermeli ve kullanmalıdır. kullanabilirsiniz. Premium diliminiz otomatik olarak yedeklenemez. isteği yerine getirilemiyor.