5G-Netzwerksegmentierung Mobilfunkanbieter können die Netzwerkleistung für bestimmte Anwendungsfälle verbessern. Cases. In diesem Leitfaden wird erläutert, wie eine App das Netzwerk-Slicing der UX-Upselling auslösen kann und fordern Sie eine Premium-Verbindung an, wenn der Nutzer sich für den Kauf einer Premium-Verbindung entscheidet.
<ph type="x-smartling-placeholder">Premium-Funktions-Intents deklarieren
Damit die von Ihrer App angefragte Netzwerkfunktion berücksichtigt werden kann,
muss im App-Manifest die Absicht deklarieren, diese Funktion anzufordern.
Andernfalls löst die Netzwerkanfrage keine SecurityException
aus.
Dazu muss Ihre App die
PackageManager.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES
Eigenschaft in der Datei AndroidManifest.xml
und fügen Sie eine entsprechende XML-Datei hinzu
Ressourcendatei.
Eine Funktionsdeklaration in der Manifestdatei sieht so aus:
<property android:name="android.net.PROPERTY_SELF_CERTIFIED_NETWORK_CAPABILITIES"
android:resource="@xml/network_capabilities" />
Die entsprechende network_capabilities.xml
-Ressourcendatei sieht so aus:
<network-capabilities-declaration> xmlns:android="http://schemas.android.com/apk/res/android">
<uses-network-capability android:name="NET_CAPABILITY_PRIORITIZE_LATENCY"/>
</network-capabilities-declaration>
Upselling-Vorgang für Netzwerkaufteilung auslösen
Dieses Codebeispiel zeigt, wie Sie den Upselling-Ablauf auslösen und den Premium-Funktionen erworben hat.
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
}
});
}
In den folgenden Abschnitten werden die Schritte dieses Prozesses Details.
Schritt 1: Prüfen, ob Premium-Funktionen verfügbar sind
Rufen Sie die Methode
isPremiumCapabilityAvailableForPurchase()
Zu bestimmende API-Methode
ob die ausgewählte Premiumfunktion verfügbar ist. Diese Methode gibt true
zurück.
Die Funktion kann vom Mobilfunkanbieter per Upselling erworben werden.
Workflow für Benachrichtigungen.
Schritt 2: Upselling-Benachrichtigungen initiieren
Nachdem Sie bestätigt haben, dass die Premium-Funktion verfügbar ist, sollte Ihre App
purchasePremiumCapability()
um den Upselling-Benachrichtigungsvorgang zu starten. Hat der Nutzer noch nichts gekauft
die angegebene Funktion und alle Voraussetzungen erfüllt sind,
Der Nutzer wird in einer Benachrichtigung über die Optionen zur Leistungsoptimierung informiert.
bei ihrem Mobilfunkanbieter erhältlich sind. Wenn der Nutzer auf die Benachrichtigung tippt,
öffnet die Plattform die Webansicht des Mobilfunkanbieters, damit der Kaufvorgang fortgesetzt werden kann.
Der parameter
-Callback, der an purchasePremiumCapability()
übergeben wird, gibt eine
Ergebniscode für die Kaufanfrage abrufen.
Ergebniscodes
PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS
und
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED
stellen erfolgreiche Ergebnisse dar, bei denen Ihre App
Premium-Funktionen nutzen können.
Die Ergebniscodes in der folgenden Liste stehen für fehlgeschlagene Kaufanfragen. Weitere Informationen finden Sie unter finden Sie in der API-Referenz.
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED
PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR
PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED
PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED
PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE
PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUBSCRIPTION
PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_FOREGROUND
PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP
PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED
PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED
PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT
PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED
Schritt 3: Gekaufte Premiumverbindung anfordern
Wenn der Upselling-Benachrichtigungsablauf einen erfolgreichen Code zurückgibt
(PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS
oder
PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED
) verwenden, sollte deine App
requestNetwork()
um ein Netzwerk anzufordern,
das die gewünschte Funktion erfüllt. Wenn Sie
Wenn Sie ein NetworkRequest
-Objekt erstellen, sind die Funktionen, die Sie hinzufügen, nicht identisch mit der
, die Sie in den vorherigen Schritten an die TelephonyManager
APIs übergeben haben.
In der folgenden Tabelle werden die Konstanten aus der Klasse TelephonyManager
der Klasse
der entsprechenden Konstanten in NetworkCapabilities
.
TelephonyManager -Konstante |
NetworkCapabilities -Konstante |
---|---|
PREMIUM_CAPABILITY_PRIORITIZE_LATENCY |
NET_CAPABILITY_PRIORITIZE_LATENCY |
Wenn die Kaufanfrage fehlschlägt, sollte deine App die Standardeinstellung Netzwerk. Es gibt kein automatisches Fallback-Verhalten, wenn das Premium-Segment Anfrage kann nicht ausgeführt werden.