2012-09-27 6 views
4

앱을 탐색 할 때마다 기기가 특정 Wi-Fi에 연결되어 있는지 확인하고 Wi-Fi에 자동으로 연결하기를 원합니다. onRestart()에서 할 수 있다는 것을 알고 있습니다. 하지만 하나의 액티비티 상태 만 처리합니다.Android 확인 모든 onRestart의 Wi-Fi

제 질문은 모든 활동에 onRestart()를 추가하는 대신 앱의 상태를 처리 할 수있는 방법이 있다면 원하는 것입니다.

답변

1

다음 코드를 시도 : 매니페스트 파일에

<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" /> 
+0

감사를

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); } } } } 

이 매니페스트 파일에이를 추가하는 것을 잊지 말아. RECEIVE_BOOT_COMPLETED는 모바일을 켠 후에 방송됩니다. 맞습니까? 하지만 onRestart() 메서드와 비슷하지만 모든 작업을 적용 할 때마다 응용 프로그램을 시작할 때마다 확인 작업을 수행하려고합니다. – Keith

+0

네가 맞다. 매번 응용 프로그램을 시작하는 것과 똑같이해라. –