デバイスが特定の Wifi に接続しているかどうかをアプリで確認し、アプリがナビゲートされるたびにその Wifi に自動接続するようにします。onRestart() でできることはわかっています。ただし、1 つのアクティビティの状態のみを処理します。
私の質問は、すべてのアクティビティに onRestart() を追加して、私がやりたいことをする代わりに、アプリの状態を処理する方法があるかどうかです。
デバイスが特定の Wifi に接続しているかどうかをアプリで確認し、アプリがナビゲートされるたびにその Wifi に自動接続するようにします。onRestart() でできることはわかっています。ただし、1 つのアクティビティの状態のみを処理します。
私の質問は、すべてのアクティビティに onRestart() を追加して、私がやりたいことをする代わりに、アプリの状態を処理する方法があるかどうかです。
次のコードを試してください。
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
public class AutostartService extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("in broad....");
ConnectivityManager manager = (ConnectivityManager)context.getSystemService(context.CONNECTIVITY_SERVICE);
boolean is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
boolean isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
if(!is3g && !isWifi){
}else{
if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")))
{
System.out.println("in broadcast receiver.....");
Intent i = new Intent(context, Splash.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
}
これをマニフェスト ファイルに追加することを忘れないでください。
<receiver android:name=".AutostartService" android:enabled="true" android:exported="true">
- <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
マニフェスト ファイルの次のアクセス許可:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />