首页 > 编程技术 > android

Android模拟器上模拟来电和短信配置

发布时间:2016-9-20 19:57

如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。

在Android模拟器上模拟来电


项目需求要做一个控制来电显示的Android 应用,那么我们就需要在Emulator上模拟来电效果了,下面来看看如何实现Android模拟器上模拟来电

方法如下:
1.单个电话
打开命令行cmd,输入telnet 回车.
然后输入 o localhost 5554 回车,连到Emulator上.
输入gsm call 123456 上面显示OK
这时再去看模拟器,上面就有来电了.
其他:
挂断电话:gsm cancel <模拟打进的电话号码>
设置其他模式:gsm voice unregistered为网络无法联通,denied为紧急呼叫模式

help gsm
allows you to change GSM-related settings, or to make a new inbound phone call

available sub-commands:
   gsm list             list current phone calls
   gsm call             create inbound phone call
   gsm busy             close waiting outbound call as busy
   gsm hold             change the state of an oubtound call to 'held'
   gsm accept           change the state of an outbound call to 'active'
   gsm cancel           disconnect an inbound or outbound phone call
   gsm data             modify data connection state
   gsm voice            modify voice connection state
   gsm status           display GSM status
2. 多个模拟器模拟播打电话
启动多个模拟器,在模拟器A中播模拟器B的端口号码,即可。
3.发送短信
sms send <模拟发送短信的电话号码> <短信内容>
例如:sms send 1234567 Hello
 
 
 
Vista 系统中使用 Telnet服务 器问题
 
【问】 Vista下 输入telnet,提示没有找到该文件,如何找回telnet呢。

【答】 很多在Vista下没有找到telnet程序,如在“开始”的“运行”或“搜索”框中输入telnet,提示没有找到该文件,其实Vista默认是不安装的,由于是针对服务器设置的,在Windows Server 2008中是默认安装的。

解决的方法也很简单,直接安装Vista的系统组件中安装即可,操作步骤,“我的电脑”->“控制面板”->“程序和功能”中,在左边的树图中可以看到“打开或关闭 Windows 功能”,在打开的新对话框“Windows 功能”中可以看到 “telnet服务器”和“telnet客户端”,我们选中这两项,telnet就恢复了,如果仅用于连接远程服务器,我们只需安装“telnet客户端”即可。



Android调试时模拟接收短信与来电

Android模拟器模拟接收短信和来电的方法

关于发送短信和拨打电话,在android里面都很简单,一两句代码就可以搞定。

接收短信和来电有两种方法:

1:用android模拟器自带的Emulator Control(什么?不知道这个在哪里-_-!eclipse左下角有一个+号,选择other,找到打开android目录即可看到。或者在上面的搜索框内输入em.....)


Android调试时模拟接收短信与来电

看到了么?输入incoming number,选择voice就是模拟来电;选择SMS就是模拟发送短信。

其实android模拟器还有一个自己的sim卡号码:15555218135。

在手机中可以找到:

Settings——About phone——Status——Phone number

设置——关于手机——状态——手机号码

2:利用命令行

在cmd下面,可以向模拟器发送一些指令,告诉模拟器我是来电话啦还是来短信了。

打开cmd,输入:telnet localhost 5554

注:vista系统默认没有打开telnet,需要我们手动打开。

5554是模拟器的端口号,大家在模拟器的title上面同样可以看到。

然后输入:gsm call 15555218135

看看模拟器,是不是有一个15555218135的来电?


Android调试时模拟接收短信与来电

再输入:sms send ,如:sms send 15555218135 hello

模拟器是不是有一个发送过来的短信的提示?


Android调试时模拟接收短信与来电

这样我们就可以在模拟器中调试我们处理来电和接收短信的程序了。


Android调试时模拟接收短信与来电


很多朋友第一次安装安卓模拟器发现无法上网,本教程就来告诉你如何彻底解决这个问题,因为这个问题比较普遍,所以小编就整理成教程发布出来。

一:将网络连接代理设置写入配置数据库

  1、通过命令行或者通过双击emulatoer可执行文件,打开模拟器

  2、在命令行执行adb shell 打开android的控制台(确保环境变量设置正确,即已经把Android_SDK/tools 添加到了PATH(Linux)/path(Windows))

  3、执行ls -l /data/data/com.android.providers.settings/databases/settings.db ,查看系统设置数据库文件是否存在

  4、如果数据库文件存在,执行sqlite3 /data/data/com.android.providers.settings/databases/settings.db,以settings.db为当前scheme启动SQLITE3

  5、执行INSERT INTO system VALUES(99,’http_proxy’, ‘192.168.0.245:8080′); 语句插入数据,其中192.168.0.245是我用的代理服务器IP,8080是端口,请根据具体情况替换

  6、执行SELECT * FROM system; 来查看刚才插入的数据

  7、重启模拟器,以使代理服务器设置生效

  8、可以使用DELETE FROM system WHERE _id=99; 语句来删除代理设置,或者使用UPDATE system SET value = ‘192.168.0.245:8070′WHERE _id=99; 来修改代理服务器设置

二:可能是DNS的问题

  1、用系统的命令进入Android开发包的tools目录

  cd E:android-sdk-windows tools

  2、使用adb的shell,确认系统的各项属性

  adb shell

  getprop

  getprop会列出系统当前的各项属性

  3、得到模拟器的DNS地址

  在结果里可以看到:

  [net.dns1]: [10.0.2.3]

  [net.dns2]: [10.0.2.4]

  4、把dns改成我们自己的DNS

  setprop net.dns1 192.168.1.1

  注:一般TP-LINK及D-LINK的DNS都是192.168.1.1,如果不是请使用ipcnofig /all命令确认。


三:直接带参数启动模拟器

  emulator @default -http-proxy 10.16.xx.xx:8080

  其中default是模拟器的名称

四:在模拟器中设置

  启动模拟器,然后进入Settings->Wireless & networks->Mobile networks->Access Point Names

  然后打开出现在列表中的access point;

  然后下面这样设置:

  - Proxy : your proxy address

  - Port : your proxy port

  - Username : your username if needed, or

  - Password : your password if needed, or


Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单,只要把模拟器的默认DNS设置成电脑的DNS地址即可。


第一步:用系统的命令进入Android开发包的tools目录

cd X:\...\android-sdk-windows\tool

第二布:使用adb的shell,确认系统的各项属性

adb shell

getprop  

getprop会列出系统当前的各项属性


第三步:得到模拟器的DNS地址


在结果里可以看到:


[net.dns1]: [10.0.2.3]

[net.dns2]: [10.0.2.4]

[net.dns3]: [10.0.2.5]

[net.dns4]: [10.0.2.6]


第四步:把dns改成我们自己的DNS


setprop net.dns1 192.168.1.1


注:一般TP-LINK及D-LINK的DNS都是192.168.1.1,如果不是请使用ipcnofig /all命令确认。


教你轻松解决Android模拟器无法上网问题

1、运行android模拟器,双击桌面的设置图标如下图:


安卓模拟器桌面

安卓模拟器桌面

2、 依次进入:“settings”->“Wireless controls”->“Mobile networks”->“Access Point Names”然后打开出现在列表中的access point,如果已经设置为中文那就是:设置/无线和网络/移动网络/接入点名称,并输入相关设置:具体说明如下:

依次进入:“settings”->“Wireless controls”->“Mobile networks”->“Access Point Names”然后打开出现在列表中的access point,如果已经设置为中文那就是:设置/无线和网络/移动网络/接入点名称。

Proxy(代理):比如:113.12.71.76,如果你不怎么如何设置,可以百度一下去网上找可以使用的代理ip,最好是找国内的,快一些(百度搜索"代理ip")。

Port(端口) :你找的代理ip的端口

Username(用户名):未设置(不要输入,把原来的.也删除)

Password(密码):未设置(不要输入,把原来的.也删除)

Server(服务器):未设置(不要输入,把原来的.也删除)。


有时我们需要在Android模拟器上的Browser访问Internet,或者访问本地的web应用,那么我们应该如何配置实现这个功能呢?

本文我们讲的是在Windows环境下,配置好Adroid环境变量后(如将d:android-sdk-windows-1.0_r1 ools加入系统变量PATH),在命令行窗口输入:

emulator

启动Android 模拟器后, 输入:

adb shell

进入adb shell模式:

将网络连接代理设置写入配置数据库,假如你的上网代理IP是10.193.xx.xx:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "INSERT INTO system VALUES(99,http_proxy,10.193.xx.xx:1080)"
查询一下是否成功更改了系统设置:

sqlite3 /data/data/com.android.providers.settings/databases/settings.db "SELECT * FROM system"
 

结果中应有:99|http_proxy|10.193.xx.xx:1080

重启模拟器,应该可以使用Browser上Internet了.

删除刚刚写入的配置信息方法:
sqlite3 /data/data/com.android.providers.settings/databases/settings.db "DELETE FROM system WHERE _id=99"


Android模拟器访问本地Web应用

一个早上就是想让android的模拟器可以访问到web的应用程序,但是一直是不可以,弄的不知所措。

开控制面板--选择程序和功能--点击左边的开启或关闭windows功能--然后选则CGI,等等...试了很久还是不可以。

后来在上面查的时候看到的是有一段资料的介绍:

如何在Android模拟器上访问本地的Web应用? 例如,在你的开发机器上启动一个Tomcat服务,接着打开电脑上的浏览器,默认情况下输入http://localhost:8080/就能够访问到Tomcat的主页面;那么,如果我们想在Android模拟器上来访问,可以吗?答案是肯定的,但是访问的URL会有所变化,这又是为什么呢?请继续往下看。

在一般的Java Web程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的Web服务,但是如果我们在Android模拟器中也采用同样的地址来访问,Android模拟器将无法正常访问到我们的服务,这是为什么呢?我们可以这样来理解:Android的底层是Linux kernel,包括Android本身就是一个操作系统,因此,这时我们在模拟器的浏览器中输入的localhost或127.0.0.1所代表的是Android模拟器(Android虚拟机),而不是你的电脑,明白了吗?这就是为什么你在模拟器中使用localhost时会报“Web page not available”的原因。

那到底要如何才能访问到本地电脑上的Web应用呢?在Android中,将我们本地电脑的地址映射为10.0.2.2,因此,只需要将原先的localhost或者127.0.0.1换成10.0.2.2,就可以在模拟器上访问本地计算机上的Web资源了。

那下面我们就启动电脑上的Tomcat,然后运行Android模拟器,打开模拟器上的浏览器,然后访问:http://10.0.2.2:8888 是不是已经看到那只可爱的Tomcat猫了呢?访问截图如下图所示。(说明:在我的电脑上,Tomcat服务使用的端口是8888,默认情况是8080)

图:


试用了,很受用。O(∩_∩)O~呵呵

本文章来为各位介绍Android fragment使用方法与注意事项,希望此例子能够帮助到各位朋友,有需要了解的朋友可进来看看。
1、使用支持库

 

如果您的应用需要运行在3.0及以上的版本,可以忽略这部分内容。

 

如果您的应用使用在3.0以下、1.6及以上的版本,需要使用支持库来构建。

 

使用支持库的步骤:

 



  1. 使用SDK下的SDK Manager工具下载Android Support Package


     2. 在您的Android工程的顶级目录下创建一个libs目录

    3. 找到您的SDK下的/extras/android/support/v4/android-support-v4.jar,并且拷贝到您的项目的libs下,选中这个jar包 → 右键 → Build Path → Add to Build Path

    4.在您的项目的Manifest.xml文件的<manifest>标签下添加:

    <uses-sdkandroid:minSdkVersion="4"

      android:targetSdkVersion="8"/>

      其中targetSdkVersion是您的软件最小支持的版本

    5.如果您的项目支持3.0以下的版本,请导入如下的包:android.support.v4.*;

    在使用Fragment的Activity请继承FragmentActivity而不是Activity。如果您的系统是3.0或以上版本,同样需要导入类似的包,但是可以使用普通的Activity。 

      

    2、创建一个Fragment

    Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。可以看做是一个子Activity。

    创建一个Fragment

    创建一个Fragment和创建一个Activity很类似,继承Fragment类,重写生命周期方法,主要的不同之处就是需要重写一个onCreateView()方法来返回这个Fragment的布局。例子:

     


      

    Fragment的生命周期方法依赖于Activity的生命周期,例如一个Activity的onPause()的生命周期方法被调用的时候这个Activity中的所有的Fragment的onPause()方法也将被调用。

     

    更多的内容请参照类Fragment。

    使用XML添加FragmentActivity

    尽管Fragment可以被多个Activity重用,但是您也必须把Fragment关联到一个FragmentActivity上。可以使用XML布局文件的方式来实现这种关联。

    说明:上面的所说的FragmentActivity适用在API在3.0以下的版本,3.0及以上的版本可以使用普通的Activity。

    例子:


      

    上面使用fragment标签,android:name=””指定一个添加到xml中的Fragment。对于创建不同的屏幕尺寸布局的更多信息,请阅读支持不同的屏幕尺寸。

     


     

      

    当您添加一个片段一个活动布局定义的布局XML文件中的片段,你不能删除在运行时的片段。如果您打算在用户交互和交换片段,你必须添加的活性片段的活动时第一次启动。

     

    3、构建一个灵活的UI

     

    FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的操作。

     

    在Activity运行期间你可以添加Fragment而不是在XML布局文件中进行定义。如果你打算在Activity中改变Fragment的生命过程。

     

    如果要执行添加、删除、修改的操作,你必须通过FragmentManager的对象获得一个FragmentTransaction对象,通过它的API来执行这些操作。

     

    添加一个Fragment到一个Activity,必须把这个Fragment添加到一个容器视图中。例子:


     

    在Activity中你可以通过getFragmentManager()来获得Fragment对象,然后通过FragmentManager对象的beginFragmentTransaction()方法来获得FragmentTransaction对象。通过它的add()方法来添加一个Fragment到当前的Activity中。

    一个FragmentTransaction对象可以执行多个增删修的方法,如果你想把这些修改提交到Activity上,必须在最后调用一下这个对象的commit()方法。例子:


     


      

    由于不是定义在XML布局中的,所有可以转型删除和修改的操作。

    如果替换或者删除一个Fragment然后让用户可以导航到上一个Fragment,你必须在调用commit()方法之前调用addToBackStack()方法添加到回退栈。如果你把这个Fragment添加到了回退栈,在提交之后这个Fragment是会被Stop而不是Destroyed。如果用户导航到这个Fragment,这个Fragment会被Restart而不是重新创建。如果你没有把它添加到回退栈,则在删除或者替换的时候它将被Destroyed。例子:


      

    4、与其他Fragment的交互

    两个单独的Fragment之间是不应该进行通信的。应该使用他们所存在的Activity作为沟通的纽带。

    为了实现两个Fragment的交互,您可以在Fragment中定义一个接口,然后再这个接口中定义一个方法,在Fragment的onAttach()方法中调用这个接口中的方法。然后让Activity实现这个方法来完成Activity和Fragment之间的通信。例子:

    定义接口并调用方法:

     


      

    实现接口,在这个方法中可以进行与其他Fragment的数据的交互:


      

    可以通过FragmentManager的findFragmentById()来查找一个Fragment。


     

     

    fragment使用注意

  2. 在讲这之前呢,需要讲一下,fragment布局的原理,fragment 布局叫做层布局,是一层覆盖一层的。当一个布局里面需要多个fragment 布局嵌套的时候。就会遇到这种难过情况,你会发现两个fragment 的内容重叠到一块了。如果页面里面有按纽的话,你会发现点的第一个页面的按钮。但是第二个页面里的按钮点击事件也被触发了。

  3. 这是昨天遇到的情况,下面就讲一下解决办发,首先你要找到你的fragment 的布局文件。

  4. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:background="@color/white"
               android:clickable="true"
               android:orientation="vertical" >
     
         <RelativeLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_marginTop="20dp" >
     
           <ImageView
              android:id="@+id/iv_center_head"
              android:layout_width="50dp"
              android:layout_height="50dp"
              android:layout_marginLeft="10dp"
              android:background="@drawable/ic_launcher" />
     
           <TextView
              android:id="@+id/tv_center_shop_name"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginTop="9dp"
              android:layout_toRightOf="@+id/iv_center_head"
              android:text="asd"
               android:textSize="14sp" />
        </RelativeLayout>
    </LinearLayout>

  5. 这是一个布局文件,准确的说是fragment 布局文件,需要注意的是:


  6. android:background="@color/white"
    android:clickable="true"

  7. 这两句代码就表示,为fragment 设置背景,以防两个fragment 布局文件重叠,内容错乱出现。 第二行代码则防止  点击穿透的。还有最后不推荐使用多个fragment 重复使用。

很多同学可能需要同时开发ios和Android应用,本文我们提供在mac系统下安装配置Android开发环境图文步骤,如果你的开发机器是mac,本文值得参考。

Java JDK下载

Java JDK(Java SE Development Kit)官方下载 http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html

按照平台下载安装

Mac获得Java的安装位置

$ echo $(/usr/libexec/java_home) #输出当前JDK路径

安装的JDK8: /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk

Mac自带的JDK6: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

Android SDK下载

官方地方被墙,不解释,翻墙吧。

Android SDK官方下载 https://developer.android.com/sdk/index.html

无法翻墙的请使用国内资源进行下载 Android Dev Tools

下载完, 自行解压 下载好的Android SDK,打开Eclipse —> Preferences对话框,找到Android那一项,单击Browse,选取SDK目录即可。

Eclipse安装

下载对应平台, 然后安装就可以了, 没有什么好说的

ADT安装

ADT(Android Developer Tools)

打开Eclipse,在菜单中选择Help中的 Install New Software , 在右上方选择Add

Name编辑为 ADT

Location编辑为 https://dl-ssl.google.com/android/eclipse/ ( 你懂的要翻 )


ADT

选择 Developer Tools , 点击 next 执行下载

安装平台工具

安装好重启后, 在 Window 中 Android SDK Manager 中下载 Tools 和 Extras 以及其他API


API

虚拟机设置

在Window中打开 Android Virtual Device Manager , Create添加一个Android虚拟机, 用于开发的Android程序做测试.


虚拟机

创建Android工程

重启Eclipse程序后, File->New->Other->Android Application Project. 设置项目名等条目, 创建成功


创建


设置

安装成功

FAQ

AppCompat v7 r21 returning error in values.xml?

搭建过程中会出现各种各样的问题, 遇到问题时, 大家最好把出错原因放到Google中搜索, 最后总能解决的, 实在解决不了, 可以找了安卓开发者帮你看看, 最后祝大家都能成功配置安卓开发环境.


另一篇来自百度经验的,也值得参考

在mac上搭建Android开发环境

首先我们需要知道开发安卓的环境由以下几个组件组成:Java虚拟机JDK、Eclipse、Eclipse插件ADT(Android Developer Tool)和Android开发包SDK。下面就和大家一起学习如何来快速的,适合新手的搭建方式吧!

方法/步骤

因为系统自带jdk,所以就不用在下载了。可以在终端输入java -version查看其结果。


在mac上搭建Android开发环境

然后去android的官方网站下载ADT工具

http://developer.android.com/sdk/index.html

可能之前很多人的教程中都说需要SDK+Eclipse,还有Eclipse插件

但是现在官方把他们全部整合在一起了。

官方的原话“With a single download, the ADT Bundle includes everything you need to begin developing apps”

仅仅下载这个ADT(安卓开发工具包)就包含了你开发所需要的所有东西!

实际就是官方为了方便大家开发,给我们进行了打包吧。


在mac上搭建Android开发环境

解压下载完的ADT包,里面有两个文件夹,一个eclipse一个SDK


在mac上搭建Android开发环境

继续跟着官方文档走,建议将其解压在家目录下的Development目录下,我没有Development目录,但是作为一个菜鸟,我还是决定完全照着官方的意思走,所以我新建了一个Development,然后把刚刚自动解压的eclipse和sdk都移了进来(如何操作?我是使用的终端 mkdir Development 然后mv进来的)


在mac上搭建Android开发环境

进入到eclipse目录,然后启动它!激动人心的时刻!


在mac上搭建Android开发环境


在mac上搭建Android开发环境

现在似乎一起都准备就绪了,可以创建自己的第一个app了!


在mac上搭建Android开发环境


标签:[!--infotagslink--]

您可能感兴趣的文章: