0

우선 api 23을 사용하고 있고 android N을 사용하지 않으므로 android.net.conn.CONNECTIVITY_CHANGE가 여전히 작동해야하지만 그렇지 않습니다.연결 변경 수신기가 작동하지 않습니까?

매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="enis.example.com.connectivitytest"> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

     <receiver android:name="com.connectivitytest.ConnectionChangeReceiver" 
      android:label="NetworkConnection"> 
      <intent-filter> 
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

ConnectionChangeReceiver 무엇이든지 내가 로그 메시지는 단지 명확하게하기 위해 추가하지만이 로그 캣에 표시되지 않은 더 토스트 메시지가없는

package com.connectivitytest; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.util.Log; 
import android.widget.Toast; 


public class ConnectionChangeReceiver extends BroadcastReceiver 
{ 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo(); 
     NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo( ConnectivityManager.TYPE_MOBILE); 
     if (activeNetInfo != null) 
     { 
      Toast.makeText(context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_LONG).show(); 
       Log.v("Active Network Type : ", activeNetInfo.getTypeName()); 

     } 
     if(mobNetInfo != null) 
     { 
      Toast.makeText(context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_LONG).show(); 

     }    Log.v("Mobile Network Type : ", activeNetInfo.getTypeName()); 



    } 
} 

어느 한 쪽. 난 다음 코드를 시도 : https://gist.github.com/mjohnsullivan/1fec89187b1274dc256e 를하지만 모두 같은, 오류 없습니다하지만 아무것도 더 토스트 메시지도 내가 수신기를 가진 전체 포인트는 백그라운드에서 일을하는 의미 메시지를

+0

https://stackoverflow.com/a/17181263/115145 – CommonsWare

+0

나는 그것을 어딘가에서 읽었지만 그것을 완전히 이해할 수는 없었다. 수신기를 가지고 있다는 사실은 백그라운드에서 일을하는 것입니다. 이제 전경에서 활동을합니다. 사용할 수있는 네트워크가있을 때 실행해야하는 작업을 제외하고는 다른 것을 필요로하지 않으면 어떻게됩니까? 무엇부터 시작해야할까요? 수신기가 사용 가능한 네트워크에서 수신 대기 한 다음 활동을 실행합니까? 미안하지만 나는 매우 혼란 스럽다. –

답변

1

를 기록하지 발생하지 , 이제 전경에서 활동을합니다.

사용자는 소위 앱이 설치된 후에 배치되는 "상태를 정지"에서 당신의 응용 프로그램을 이동, 활동 한 번 실행해야합니다. 당신이 때까지, 의도 한대로 그 후, 수신기가 작동합니다

  • 사용자 앱, 또는 사용자가 설정으로 간다
  • 를 제거 목록에서 앱을 발견하고 "강제 정지"버튼
  • 을 클릭

사용자가 다시 활동을 시작할 때까지 앱이 중지 된 상태로 돌아오고 수신자가 더 이상 작동하지 않습니다.

사용할 수있는 네트워크가있을 때 실행해야하는 작업 외에는 다른 것이 필요하지 않으면 어떻게해야합니까?

대부분의 경우 사용자가 구성하고자하는 앱 동작의 측면이 있습니다. 그리고이를 위해서는 사용자 인터페이스가 필요합니다.

처음부터 어떤 활동으로 작성합니까?

Play 스토어에서 상품을 배송하려면, 개인 정보 취급 방침이 필요합니다.