实现一个不停发包的Android应用(类似于电脑上的Ping命令)

代码如下:

package com.example.ping;

import java.io.IOException;

import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
    TextView info=null;
    int i=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.info = (TextView) findViewById(R.id.info);
        RunHandler();
    }

    @SuppressLint("HandlerLeak")
    private void RunHandler(){
        // 实时更新UI
        final Handler mHandler = new Handler() {
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
//                startPing("www.baidu.com");
                try {
                    Process p =Runtime.getRuntime().exec("ping -c 1 -w 100 www.baidu.com");
                    if(p!=null){
                        i++;
                        info.setText("Ping www.baidu.com 进行中... " + i);
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        };

        Runnable mRunnable = new Runnable() {
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(500);
                        mHandler.sendMessage(mHandler.obtainMessage());
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        };
        new Thread(mRunnable).start();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

配置文件AndroidManifest.xml中的配置如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.ping"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="20" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
时间: 2024-12-17 02:49:04

实现一个不停发包的Android应用(类似于电脑上的Ping命令)的相关文章

如何从 Google Play 下载 Android 程序到电脑上

想必很多朋友也有需要通过电脑下载Google Play的apk到电脑端的时候,其实很简单,推荐一个网站:APK Downloader APK Downloader 是一个能直接从网页下载Google Play 应用 APK 文件的网站,省去了多余的步骤,只需提交相应应用的 URL 地址即可下载. 下面说一下步骤: 1.登陆Google Play(网址:Google Play Store),必须要有Google账号: 2.找到你需要下载的apk,从地址栏复制该apk的地址,比如coursera:C

在Ubuntu宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,类似于PC上的ldd命令

在电脑上安装的Linux系统中,有一个ldd命令,可以查看对应的可执行文件或库文件依赖哪些库,但可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器,那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件或库文件. 如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,可以通过以下命令: [email protected]:$ arm-linux-readelf  -a  busybox |grep "Shared&qu

记,基于Android开发类似于微博的东东时,值得记录的几个问题~

作为一个Java的使用者,在经历了Web到服务端开发的工作后,今年终于开始接触一些android开发方面的工作了. 新的挑战~~最近有一个需求是在应用里开发一个类似于微博的功能模块,说难不难,说易不易~~ 作为一名Android上的菜鸟,在开发的过程里还是遇到不少问题的.当然,紧接着的就是一个个的想办法解决问题~~~~~ 一直想把过程中遇到的,自己觉得几个比较有意义的问题,及其解决方法记录下来,但苦逼的是最近一直没有多的时间~~~ 今天又到了一周一度的美好周末,阳光明媚,那干脆起个早,来写一写,

开源一个C#写的Android和IOS都能跑的 打击感强的RPG玩玩。

不废话直接上图 关于下载和打开 没错,我强调过很多次的,Unity3D开发的.  如果你还不懂Unity3D 的基本开发套路,如何打开Unity如何安装Unity这些问题.我建议你先不要索要源代码. 下载后,直接打开这个工程......  然后打开根目录下载ManTuLanSi这个Scence  ,如果你是用PC,就可以按  ASDW开前  来控制前后左右.痛快的打一下怪吧. 源代码齐全吗?? 因为美术资源是别人的,所以实际源代码会有部分美术资源替换了.不过,代码还是这份代码.完全没变. 能商用

打造支持apk下载和html5缓存的 IIS(配合一个超简单的android APP使用)具体解释

为什么要做这个看起来不靠谱的东西呢? 由于刚学android开发,还不能非常好的熟练控制android界面的编辑和操作,所以我的一个急着要的运用就改为html5版本号了,反正这个运用也是须要从server获取大量数据来展示在手机上面的,也就是说:必须联网,才干正常工作,于是想了一下,反正都要联网获取数据,为什么不直接用我相对熟悉一点的 html来做这个运用呢?省的花费不够用的时间去学习android界面的控制,于是就简单了:用蹩脚的手段做了一个android程序的启动欢迎界面,内页就是一个全屏的

一个兼容性强的android摄像头调用方案

兼容性强的定义 摄像头像素无关 分辨率无关 屏幕方向无关 摄像头像素无关 像素无关体现在,无论摄像头的像素几何,我都能获取到相对合适的照片. 假设这里的合适是指:需要的照片尺寸和摄像头获取到的数据尺寸是相吻合的. float scale = expectedHeight / expectedWidth; List<Camera.Size> pictureSize = params.getSupportedPictureSizes(); for (Camera.Size size:picture

开发一个简单实用的android紧急求助软件

之前女朋友一个人住,不怎么放心,想找一个紧急求助的软件,万一有什么突发情况,可以立即知道.用金山手机卫士的手机定位功能可以知道对方的位置状态,但不能主动发送求助信息,在网上了很多的APK,都是鸡肋功能,都需要解锁.并打开软件,真正的紧急情况可能没有时间来完成这一系列操作. 于是我自己做了一个这样的软件,在紧急情况下,连续按电源键5次即可发送求救短信和位置信息给事先指定的用户,这个操作在裤兜里就能完成.原理很简单,就是设置监听器捕获屏幕的开关,在较短的时间内屏幕开关达到一定次数后,触发手机定位,定

发现一个好用的Android文件访问工具--es文件管理器,可以在同局域网下的浏览器中查看手机中的文件

如题,发现一个好用的Android文件访问工具--es文件管理器,可以在同局域网下的浏览器中查看手机中的文件 1.在手机上打开es文件管理器的远程管理器,如图:                   2.保证手机和电脑在同一个局域网下(有线或者Wifi都可以) 贴一下我的地址: (1)我电脑的IP地址(有线宽带连接): (2)手机的地址(Wifi): 3.在别的手机或者电脑上打开上面的Url(我的是:ftp://192.168.1.115:3721/),打开后就是这样的: 3. 看一下刚才在手机上

一个无序表单形成的类似于导航条的插件

//样式.sfbMaqtitle{width:960px;height:36px;background:#ff8500;padding:7px 0;font-size:18px;overflow:hidden;}.sfbMaqtitle li{cursor:pointer;display:inline-block;float:left;width:150px;line-height:36px;margin:0 43px;*margin:0 43px!important;*margin:0 40p