From 672af0ddeb6cee46740d131f60473c0733754b81 Mon Sep 17 00:00:00 2001 From: Girish Moturu Date: Thu, 11 May 2017 10:02:04 +0530 Subject: Code for starting UID app CHERRY PICKED CHANGES FROM AOSP UID de-race automation requires an app to be launched, verify the internet connectivity after launching. The following code needs to be compiled to generate an APK which acts as an app Bug: 38189852 Test: Reproduced and verified the bug fix in MR1 and OC Change-Id: I6ed247cc6335d3b6be56ece97789076e9c4b4765 --- UID/Android.mk | 30 ++++++++ UID/AndroidManifest.xml | 41 +++++++++++ UID/res/values/strings.xml | 22 ++++++ UID/res/values/styles.xml | 33 +++++++++ .../connectivity/uid/ConnectivityTestActivity.java | 81 ++++++++++++++++++++++ 5 files changed, 207 insertions(+) create mode 100644 UID/Android.mk create mode 100644 UID/AndroidManifest.xml create mode 100644 UID/res/values/strings.xml create mode 100644 UID/res/values/styles.xml create mode 100644 UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java (limited to 'UID') diff --git a/UID/Android.mk b/UID/Android.mk new file mode 100644 index 0000000..19851f6 --- /dev/null +++ b/UID/Android.mk @@ -0,0 +1,30 @@ +# +## Copyright (C) 2017 Google, Inc. +# +## Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# # You may obtain a copy of the License at: +# +## http://www.apache.org/licenses/LICENSE-2.0 +# +## Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# # limitations under the License. +# + +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_PACKAGE_NAME := ConnectivityUIDTest +LOCAL_CERTIFICATE := platform +LOCAL_DEX_PREOPT := false + +LOCAL_SRC_FILES := $(call all-java-files-under, src) +LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res + +LOCAL_PRIVILEGED_MODULE := true +LOCAL_PROGUARD_ENABLED := disabled + +include $(BUILD_PACKAGE) diff --git a/UID/AndroidManifest.xml b/UID/AndroidManifest.xml new file mode 100644 index 0000000..0baa509 --- /dev/null +++ b/UID/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/UID/res/values/strings.xml b/UID/res/values/strings.xml new file mode 100644 index 0000000..9f0cf32 --- /dev/null +++ b/UID/res/values/strings.xml @@ -0,0 +1,22 @@ + + + + + ConnectivityUIDTest + Settings + + diff --git a/UID/res/values/styles.xml b/UID/res/values/styles.xml new file mode 100644 index 0000000..2847191 --- /dev/null +++ b/UID/res/values/styles.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + diff --git a/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java b/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java new file mode 100644 index 0000000..49c6c14 --- /dev/null +++ b/UID/src/com/android/tests/connectivity/uid/ConnectivityTestActivity.java @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.tests.connectivity.uid; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.os.StrictMode; +import android.util.Log; +import java.io.*; +import java.lang.Thread; +import java.net.HttpURLConnection; +import java.net.URL; + +public class ConnectivityTestActivity extends Activity { + + ConnectivityManager connectivityManager; + NetworkInfo netInfo; + public static final String TAG = "ConnectivityUIDTest"; + private static final String RESULT = "result"; + + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StrictMode.ThreadPolicy policy = + new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + } + + public void onResume() { + super.onResume(); + boolean conn = checkNow(this.getApplicationContext()); + Intent returnIntent = new Intent(); + returnIntent.putExtra(RESULT, conn); + setResult(RESULT_OK, returnIntent); + finish(); + } + + public boolean checkNow(Context con) { + try{ + connectivityManager = (ConnectivityManager) + con.getSystemService(Context.CONNECTIVITY_SERVICE); + netInfo = connectivityManager.getActiveNetworkInfo(); + return netInfo.isConnected() && httpRequest(); + } catch(Exception e) { + Log.e(TAG, "CheckConnectivity exception: ", e); + } + + return false; + } + + private boolean httpRequest() throws IOException { + URL targetURL = new URL("http://www.google.com/generate_204"); + HttpURLConnection urlConnection = null; + try { + urlConnection = (HttpURLConnection) targetURL.openConnection(); + urlConnection.connect(); + int respCode = urlConnection.getResponseCode(); + return (respCode == 204); + } catch (IOException e) { + Log.e(TAG, "Checkconnectivity exception: ", e); + } + return false; + } +} -- cgit v1.2.3