在main.xml中:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00ff66">
</LinearLayout>
在PhoneBroadcastReceiver.java中:
package com.li.phone;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class PhoneBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, PhoneService.class));
}
}
在PhoneService.java中:
package com.li.phone;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
public class PhoneService extends Service {
private TelephonyManager telephony = null;
@Override
public void onCreate() { // 服务创建的时候操作
super.onCreate();
this.telephony = (TelephonyManager) super
.getSystemService(Context.TELEPHONY_SERVICE);
this.telephony.listen(new PhoneStateListenerImpl(),
PhoneStateListener.LISTEN_CALL_STATE); // 设置监听操作
}
private class PhoneStateListenerImpl extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE: // 挂断电话
break;
case TelephonyManager.CALL_STATE_RINGING: // 领音响起
System.out.println("拨入电话号码:"
+ incomingNumber
+ ",拨入时间:"
+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.format(new Date()));
break;
case TelephonyManager.CALL_STATE_OFFHOOK: // 接听电话
break;
}
}
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
在MyPhoneDemo.java中:
package com.li.phone;
import android.app.Activity;
import android.os.Bundle;
public class MyPhoneDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
修改AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.li.phone"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MyPhoneDemo"
android:label="@string/title_activity_my_phone_demo" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".PhoneService" />
<receiver android:name=".PhoneBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
</application>
</manifest>
在微博上看到罗永浩说了一句话:“中国电子产品的大时代已经到来”,这句话主要是基于目前小米、魅族和OPPO等厂商推出的旗舰手机已经不低于甚至超越国际大厂的旗舰手机。从现实来看,确实也是如此,从手机设计、做工、操作系统等各方面,都已经不差,可以说达到国际先进水平。经过多年的折腾,思维的变革,有此成绩,确实令人欣喜。应该说国内从不缺良好的制造,世界工厂这个名头还是不虚的,现应能拿出物美价廉的好产品,现在这种局面的出现应该说是顺理成章的事情。只是,来得确实不容易。
鲁迅说过:我独不解中国人何以于旧状况那么心平气和,于较新的机运就这么疾首蹙额;于已成之局那么委曲求全;于初兴之事就这么求全责备?
我做为一个小公司的主管,在商业上也深深的体会了这句话,很多供应商,看到我们很小,或者出货量不大,就不太理人。而对出货量大的公司则表现出低声下气。这又是为什么?罗永浩在微博上说,有些供应商来找他,很热情的。他问,以前雷军做小米的时候,你们都不搭理他,现在对我们怎么这么热情。回答说,就是因为小米,我们才不敢轻易小看小公司。但是这种习气,一时半会还是很难改变的。
这样就容易形成一种不好局面,就是创业公司除了资金外,还要遭遇很多不必要的坎坷,也增加了创业的难度。增加了创业的难度就导致创新变得缓慢。国产大牌活得太滋润,不思进取,众多小公司又不能被良好的服务与支持。我们换个思路来看,如果供应商支持小公司,小公司越做越大,这是多好的事情。
所以说中国电子产品的大时代已经到来,还需要各方转变思路,多多支持创新,支持小公司,小公司之间也应加强交流和合作,灵活处事,资源互补,优势互补,这样我想大时代会来得更快,走得也更好。
回到属性面板框,,将“Custom Class"的类名UIView改为UIContro
4.新建一个函数用于关联view视图空白处的点击事件(左边有个空心圆圈代表可以连接)。
5.点击.xib文件的视图空白处,右击鼠标将Touch Up Inside 连接到 hideKeyboard这个函数,并在函数里面编写如下代码实现键盘的隐藏功能。
//点击空白处隐藏键盘 -(IBAction)hideKeyboard{ [[[UIApplication sharedApplication] keyWindow]endEditing:YES]; }
6.完成。