2
私はバックグラウンドでアプリを実行するためにジオフェンスを使用しています。デバイスの再起動後は動作しません。 cn1でデバイスを再起動した後でもどうすれば動作させることができますか?私はcn1プッシュ通知がそれを達成するためにRECEIVE_BOOT_COMPLETED権限を使用すると思います。私の場合のように他の目的のためにそうするための組み込み関数をいくつか持っていますか?デバイスの再起動後にバックグラウンドでアプリを自動実行
コード:
Geofence gf = new Geofence("test", loc, 100, 100000);
LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);
public class GeofenceListenerImpl implements GeofenceListener {
@Override
public void onExit(String id) {
}
@Override
public void onEntered(String id) {
if(Display.getInstance().isMinimized()) {
Display.getInstance().callSerially(() -> {
Dialog.show("Welcome", "Thanks for arriving", "OK", null);
});
} else {
LocalNotification ln = new LocalNotification();
ln.setId("LnMessage");
ln.setAlertTitle("Welcome");
ln.setAlertBody("Thanks for arriving!");
Display.getInstance().scheduleLocalNotification(ln, 10, LocalNotification.REPEAT_NONE);
}
}
}
更新:CN1におけるネイティブインタフェースを介してマニフェストに次のように統合する方法?
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:enabled="true"
android:exported="true"
android:name=".YourActivityRunOnStartup">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
okネイティブコードを使用します。ジオフェンスメソッドに関する質問があります。アプリがbgにあるか、または削除されたときのほとんどの場合、onEntered()メソッドが呼び出されます。しかし、onExit()は頻繁に呼び出されます。 onExitメソッドの目的は何ですか? – beck
フェンスゾーンを離れるときは、onEnterの反対です。 –
マニフェストにレシーバがある起動時にアプリケーションを自動再登録するために、アンドロイドネイティブで作業しました。私はcn1でそれをどうやってやるのかよくわからないのですか? (PS。コード内で動的にレシーバーを登録することはうまくいきません)上記の質問の更新を見てください。 – beck