新后台
This commit is contained in:
@@ -115,6 +115,7 @@ android {
|
||||
dependencies {
|
||||
// The version of react-native is set by the React Native Gradle Plugin
|
||||
implementation("com.facebook.react:react-android")
|
||||
implementation("com.google.android.gms:play-services-ads-identifier:18.1.0")
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
|
||||
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
|
||||
|
||||
<application
|
||||
android:name=".MainApplication"
|
||||
@@ -32,5 +36,9 @@
|
||||
<data android:scheme="ipay" android:host="native" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<service
|
||||
android:name="com.asterinet.react.bgactions.RNBackgroundActionsTask"
|
||||
android:foregroundServiceType="dataSync"
|
||||
tools:node="merge" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
37
android/app/src/main/java/com/rnpay/AdIdModule.java
Normal file
37
android/app/src/main/java/com/rnpay/AdIdModule.java
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.rnpay;
|
||||
|
||||
import com.facebook.react.bridge.Promise;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
|
||||
|
||||
public class AdIdModule extends ReactContextBaseJavaModule {
|
||||
|
||||
public AdIdModule(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "AdId";
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void getAdvertisingId(Promise promise) {
|
||||
ReactApplicationContext ctx = getReactApplicationContext();
|
||||
new Thread(() -> {
|
||||
try {
|
||||
AdvertisingIdClient.Info info = AdvertisingIdClient.getAdvertisingIdInfo(ctx);
|
||||
if (info.isLimitAdTrackingEnabled()) {
|
||||
promise.reject("LIMITED", "Ad tracking limited");
|
||||
return;
|
||||
}
|
||||
String id = info.getId();
|
||||
promise.resolve(id != null ? id : "");
|
||||
} catch (Exception e) {
|
||||
promise.reject("ERROR", e.getMessage(), e);
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
21
android/app/src/main/java/com/rnpay/AdIdPackage.java
Normal file
21
android/app/src/main/java/com/rnpay/AdIdPackage.java
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.rnpay;
|
||||
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class AdIdPackage implements ReactPackage {
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||
return Arrays.asList(new AdIdModule(reactContext));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
@@ -23,6 +23,7 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
protected List<ReactPackage> getPackages() {
|
||||
@SuppressWarnings("UnnecessaryLocalVariable")
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
packages.add(new AdIdPackage());
|
||||
return packages;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user