1.判断是否有网络连接
public static boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
if (mNetworkInfo != null) {
mNetworkInfo.getType(); // 可以得到网络的类型
return mNetworkInfo.isAvailable();
}
}
return false;
}
2.得到WIFI的IP地址(得不到有线网络的IP地址)
public String getWifiIpAddress(){
String ip = "";
WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
ip = "wifiInfo :" + Formatter.formatIpAddress(info.getIpAddress());
ip += "\n";
return ip;
}
3. 得到机器的IP地址(无线跟有线都可以得到)
public String getIpAddress(){
try
{
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
{
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
{
String ipAddress = inetAddress.getHostAddress().toString();
if (!ipAddress.contains("::")){ // 出掉IPV6 , 有":;"的是不是IPV6的地址
return ipAddress;
}
}
}
}
}
catch (SocketException ex)
{
Log.e("WifiPreference IpAddress", ex.toString());
}
return null;
}
4.
判断是否安装了某个应用程序
/**
* 判断是否安装了某个应用程序
*
* @param 通过packageName (String)查找
* @return true 为已安装 false 为未安装
*/
public boolean isAppAvilible(String packageName) {
final PackageManager packageManager = mContext.getPackageManager();// 获取packagemanager
if (packageName == null || "".equals(packageManager)) {
return false;
}
try {
packageManager.getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
5.得到应用的版本号:
**
* 获取版本号
* @return 当前应用的版本号
*/
public String getVersion() {
try {
PackageManager manager = mContext.getPackageManager();
PackageInfo info = manager.getPackageInfo(mContext.getPackageName(), 0);
return info.versionName;
} catch (Exception e) {
e.printStackTrace();
return mContext.getString(R.string.can_not_find_version_name);
}
}
6.调用一个没有界面的Activity
android:theme="@android:style/Theme.NoDisplay"
7.使应用程序变成窗口一样的显示 (当然还有其他方法)
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Translucent" >
<style name="Translucent" parent="@android:style/Theme.Translucent">
<item name="android:windowBackground">@drawable/dialog_bg</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
8.一个List中移除另一个List中包含的项的完美解决方法
static List<String> packageNames = new ArrayList<>();
<span style="white-space:pre"> </span>static List<String> removePackageNames = new ArrayList<>();
<span style="white-space:pre"> </span>static String[] items = {
<span style="white-space:pre"> </span>"item0",
<span style="white-space:pre"> </span>"item1",
<span style="white-space:pre"> </span>"item2",
<span style="white-space:pre"> </span>"item3",
<span style="white-space:pre"> </span>"item4",
<span style="white-space:pre"> </span>"item5",
<span style="white-space:pre"> </span>"item6",
<span style="white-space:pre"> </span>"item7",
<span style="white-space:pre"> </span>"item8",
<span style="white-space:pre"> </span>"item9",
<span style="white-space:pre"> </span>"item10",
<span style="white-space:pre"> </span>};
其中
for (int i = 0 ; i < 10 ; i++){
packageNames.add(items[i]);
}
for (int i = 0 ; i < 5 ; i++){
removePackageNames.add(items[i]);
}
现在要把removePackageNames 中包含的item 从packageNames中移除。当然我们可以使用for循环实现,但是方法比较复杂(相对现在的这种方法)
实现方法如下:
<pre name="code" class="java">Iterator<String> <span style="font-family: Arial, Helvetica, sans-serif;">iterator = packageNames.iterator();</span>
while(iterator.hasNext()){String item = iterator.next();if (removePackageNames.contains(item)){iterator.remove();}}
9.setVisibility 没有作用
View 的 setVisibility 没有作用是这个view 有动画,
如果有 Animation 那么应该调用view.clearAnimation()
另外View 有Animation的话,如果Animation 有setFillAfter(true)的话,那么这个View是始终有Animation存在的 ,setVisbility是无效的