Skip to content

Most visited

Recently visited

navigation
BasicNetworking / src / com.example.android.basicnetworking /

MainActivity.java

1
/*
2
 * Copyright 2013 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
 
17
package com.example.android.basicnetworking;
18
 
19
import android.content.Context;
20
import android.net.ConnectivityManager;
21
import android.net.NetworkInfo;
22
import android.os.Bundle;
23
import android.support.v4.app.FragmentActivity;
24
import android.util.TypedValue;
25
import android.view.Menu;
26
import android.view.MenuItem;
27
 
28
import com.example.android.common.logger.Log;
29
import com.example.android.common.logger.LogFragment;
30
import com.example.android.common.logger.LogWrapper;
31
import com.example.android.common.logger.MessageOnlyLogFilter;
32
 
33
/**
34
 * Sample application demonstrating how to test whether a device is connected,
35
 * and if so, whether the connection happens to be wifi or mobile (it could be
36
 * something else).
37
 *
38
 * This sample uses the logging framework to display log output in the log
39
 * fragment (LogFragment).
40
 */
41
public class MainActivity extends FragmentActivity {
42
 
43
    public static final String TAG = "Basic Network Demo";
44
    // Whether there is a Wi-Fi connection.
45
    private static boolean wifiConnected = false;
46
    // Whether there is a mobile connection.
47
    private static boolean mobileConnected = false;
48
 
49
    // Reference to the fragment showing events, so we can clear it with a button
50
    // as necessary.
51
    private LogFragment mLogFragment;
52
 
53
    @Override
54
    protected void onCreate(Bundle savedInstanceState) {
55
        super.onCreate(savedInstanceState);
56
        setContentView(R.layout.sample_main);
57
 
58
        // Initialize text fragment that displays intro text.
59
        SimpleTextFragment introFragment = (SimpleTextFragment)
60
                    getSupportFragmentManager().findFragmentById(R.id.intro_fragment);
61
        introFragment.setText(R.string.intro_message);
62
        introFragment.getTextView().setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16.0f);
63
 
64
        // Initialize the logging framework.
65
        initializeLogging();
66
    }
67
 
68
    @Override
69
    public boolean onCreateOptionsMenu(Menu menu) {
70
        getMenuInflater().inflate(R.menu.main, menu);
71
        return true;
72
    }
73
 
74
    @Override
75
    public boolean onOptionsItemSelected(MenuItem item) {
76
        switch (item.getItemId()) {
77
            // When the user clicks TEST, display the connection status.
78
            case R.id.test_action:
79
                checkNetworkConnection();
80
                return true;
81
            // Clear the log view fragment.
82
            case R.id.clear_action:
83
                mLogFragment.getLogView().setText("");
84
                return true;
85
        }
86
        return false;
87
    }
88
 
89
    /**
90
     * Check whether the device is connected, and if so, whether the connection
91
     * is wifi or mobile (it could be something else).
92
     */
93
    private void checkNetworkConnection() {
95
      ConnectivityManager connMgr =
96
          (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
97
      NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
98
      if (activeInfo != null && activeInfo.isConnected()) {
99
          wifiConnected = activeInfo.getType() == ConnectivityManager.TYPE_WIFI;
100
          mobileConnected = activeInfo.getType() == ConnectivityManager.TYPE_MOBILE;
101
          if(wifiConnected) {
102
              Log.i(TAG, getString(R.string.wifi_connection));
103
          } else if (mobileConnected){
104
              Log.i(TAG, getString(R.string.mobile_connection));
105
          }
106
      } else {
107
          Log.i(TAG, getString(R.string.no_wifi_or_mobile));
108
      }
110
    }
111
 
112
    /** Create a chain of targets that will receive log data */
113
    public void initializeLogging() {
114
 
115
        // Using Log, front-end to the logging chain, emulates
116
        // android.util.log method signatures.
117
 
118
        // Wraps Android's native log framework
119
        LogWrapper logWrapper = new LogWrapper();
120
        Log.setLogNode(logWrapper);
121
 
122
        // A filter that strips out everything except the message text.
123
        MessageOnlyLogFilter msgFilter = new MessageOnlyLogFilter();
124
        logWrapper.setNext(msgFilter);
125
 
126
        // On screen logging via a fragment with a TextView.
127
        mLogFragment =
128
                (LogFragment) getSupportFragmentManager().findFragmentById(R.id.log_fragment);
129
        msgFilter.setNext(mLogFragment.getLogView());
130
    }
131
}
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.