之前个人几篇文章介绍了改nullnull的文章. 关联文章的地址
TVs are much different from other Android-powered devices: http://blog.csdn.net/sergeycao
Because TVs have a different purpose from other devices, they usually don't have hardware features that other Android-powered devices often have. For this reason, the Android system does not support the following features for a TV device:
Hardware | Android feature descriptor |
---|---|
Camera | android.hardware.camera |
GPS | android.hardware.location.gps |
Microphone | android.hardware.microphone |
Near Field Communications (NFC) | android.hardware.nfc |
Telephony | android.hardware.telephony |
Touchscreen | android.hardware.touchscreen |
This lesson shows you how to work around features that are not available on TV by:
Android doesn't support touchscreen interaction for TV devices, most TVs don't have touch screens, and interacting with a TV using a touchscreen is not consistent with the 10 foot environment. For these reasons, users interact with Android-powered TVs using a remote. In consideration of this, ensure that every control in your app can be accessed with the D-pad. Refer back to the previous two lessonsOptimizing Layouts for TV and Optimize Navigation for TV for more details on this topic. The Android system assumes that a device has a touchscreen, so if you want your application to run on a TV, you mustexplicitly disable the touchscreen requirement in your manifest file:
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
Although a TV doesn't have a camera, you can still provide a photography-related application on a TV. For example, if you have an app that takes, views and edits photos, you can disable its picture-taking functionality for TVs and still allow users to view and even edit photos. The next section talks about how to deactivate or activate specific functions in the application based on runtime device type detection.
Because TVs are stationary, indoor devices, they don't have built-in GPS. If your application uses location information, allow users to search for a location or use a "static" location provider to get a location from the zip code configured during the TV setup.
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); Location location = locationManager.getLastKnownLocation("static"); Geocoder geocoder = new Geocoder(this); Address address = null; try { address = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1).get(0); Log.d("Zip code", address.getPostalCode()); } catch (IOException e) { Log.e(TAG, "Geocoder error", e); }
TVs usually don't support microphones, but if you have an application that uses voice control, you can create a mobile device app that takes voice input and then acts as a remote control for a TV.
To check if a feature is available at runtime, call hasSystemFeature(String)
. This method takes a single argument : a string corresponding to the feature you want to check. For example, to check for touchscreen, usehasSystemFeature(String)
with the argument FEATURE_TOUCHSCREEN
.
The following code snippet demonstrates how to detect device type at runtime based on supported features:
// Check if android.hardware.telephony feature is available. if (getPackageManager().hasSystemFeature("android.hardware.telephony")) { Log.d("Mobile Test", "Running on phone"); // Check if android.hardware.touchscreen feature is available. } else if (getPackageManager().hasSystemFeature("android.hardware.touchscreen")) { Log.d("Tablet Test", "Running on devices that don't support telphony but have a touchscreen."); } else { Log.d("TV Test", "Running on a TV!"); }
This is just one example of using runtime checks to deactivate app functionality that depends on features that aren't available on TVs.
文章结束给大家分享下程序员的一些笑话语录: 打赌
飞机上,一位工程师和一位程序员坐在一起。程序员问工程师是否乐意和他一起玩一种有趣的游戏。工程师想睡觉,于是他很有礼貌地拒绝了,转身要睡觉。程序员坚持要玩并解释说这是一个非常有趣的游戏:"我问你一个问题,如果你不知道答案,我付你5美元。然后你问我一个问题,如果我答不上来,我付你5美元。"然而,工程师又很有礼貌地拒绝了,又要去睡觉。 程序员这时有些着急了,他说:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,这的确起了作用,工程师答应了。程序员就问:"从地球到月球有多远?"工程师一句话也没有说,给了程序员5美元。 现在轮到工程师了,他问程序员:"什么上山时有三条腿,下山却有四条腿?"程序员很吃惊地看着工程师,拿出他的便携式电脑,查找里面的资料,过了半个小时,他叫醒工程师并给了工程师50美元。工程师很礼貌地接过钱又要去睡觉。程序员有些恼怒,问:"那么答案是什么呢?"工程师什么也没有说,掏出钱包,拿出5美元给程序员,转身就去睡觉了。