5/18第一天
//保持屏幕常亮
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Bundle是一个传输数据类,用法类似于Map,可以在两个activi之间传递数据等。用法
Intent intent = new Intent();
intent.setClass(TestBundle.this,Target.class);
Bundle mBundle = new Bundle();
mBundle.putString("Data","data from TestBundle");//压入数据
intent.putExtras(mBundle);
startActivity(intent);
接收方:
Bundle bundle =getIntent().getExtras(); //得到传过来的bundle
String data =bundle.getString("Data");//读出数据
setTitle(data);
android.net.wifi.p2p,一个新的软件包,包含所有的API执行同行等连接与Wi - Fi。你需要与主类是WifiP2pManager,您可以调用getSystemService(WIFI_P2P_SERVICE)收购。WifiP2pManager包括API,允许您:
1、您P2P连接的应用程序通过调用initialize
2、探索通过调用附近的设备discoverPeers
开始通过调用P2P连接connect以及一些其他的接口和类是必要的,如:
WifiP2pManager.ActionListener接口,让您能够接收的操作时,如发现同行或连接到他们的成功或失败的回调。
WifiP2pManager.PeerListListener界面,您可以收到有关发现同行的信息。回调提供了一个WifiP2pDeviceList,您可以从中检索一个WifiP2pDevice范围内的每个设备对象和获取信息,如设备的名称,地址,设备类型,设备支持的WPS配置。
WifiP2pManager.GroupInfoListener界面,您可以收到一个P2P组信息。 回调提供了一个WifiP2pGroup对象,它提供了所有者,网络名称和密码的信息,如组。
WifiP2pManager.ConnectionInfoListener界面,您可以得到当前连接的信息。回调提供了一个WifiP2pInfo对象,它具有信息,如一个组是否已经形成,谁是该组的所有者。
为了使用的Wi - Fi P2P的API,你的应用程序必须要求以下用户权限:
1、ACCESS_WIFI_STATE
2、CHANGE_WIFI_STATE
3、INTERNET (虽然你的应用程序不技术上连接到互联网,沟通的Wi - Fi标准的Java套接字直接同行需要Internet权限)。
Android系统还广播了几种不同的行动,在特定的Wi - Fi P2P事件:
1、WIFI_P2P_CONNECTION_CHANGED_ACTION :P2P连接状态发生了变化。这与EXTRA_WIFI_P2P_INFOWifiP2pInfo与EXTRA_NETWORK_INFONetworkInfo对象的对象EXTRA_NETWORK_INFOEXTRA_NETWORK_INFOEXTRA_WIFI_P2P_INFOEXTRA_WIFI_P2P_INFO 。
2、WIFI_P2P_STATE_CHANGED_ACTION :P2P的状态已经改变之间的启用和禁用。 它携带EXTRA_WIFI_STATE要么WIFI_P2P_STATE_DISABLED或WIFI_P2P_STATE_ENABLED
WIFI_P2P_PEERS_CHANGED_ACTION等设备的列表已经改变。
3、WIFI_P2P_THIS_DEVICE_CHANGED_ACTION :该设备的细节已经改变。
getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。以下介绍系统相应的服务。
传入的Name | 返回的对象 | 说明 |
WINDOW_SERVICE | WindowManager | 管理打开的窗口程序 |
LAYOUT_INFLATER_SERVICE | LayoutInflater | 取得xml里定义的view |
ACTIVITY_SERVICE | ActivityManager | 管理应用程序的系统状态 |
POWER_SERVICE | PowerManger | 电源的服务 |
ALARM_SERVICE | AlarmManager | 闹钟的服务 |
NOTIFICATION_SERVICE | NotificationManager | 状态栏的服务 |
KEYGUARD_SERVICE | KeyguardManager | 键盘锁的服务 |
LOCATION_SERVICE | LocationManager | 位置的服务,如GPS |
SEARCH_SERVICE | SearchManager | 搜索的服务 |
VEBRATOR_SERVICE | Vebrator | 手机震动的服务 |
CONNECTIVITY_SERVICE | Connectivity | 网络连接的服务 |
WIFI_SERVICE | WifiManager | Wi-Fi服务 |
TELEPHONY_SERVICE | TeleponyManager | 电话服务 |
java在创建对象的时候会同时调用这个对象的构造函数完成对象的初始化工作。
使用构造函数时需要记住:
1.构造函数必须与类同名(如果一个源文件中有多个类,那么构造函数必须与公共类同名)
2.每个类可以有一个以上的构造函数
3.构造函数可以有0个、1个或1个以上的参数
4.构造函数没有返回值
5.构造函数总是伴随着new 新对象操作一起调用
wifiP2pHelper = new WifiP2pHelper(this, this.handler);
新建构造函数,并且实现了构建P2P_wifi直连通道,获取本机打开wifi后的地址。