Android有用的代码片段Word文件下载.docx
《Android有用的代码片段Word文件下载.docx》由会员分享,可在线阅读,更多相关《Android有用的代码片段Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。
![Android有用的代码片段Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/a2a317ab-6a96-4fbe-8b91-05972587c031/a2a317ab-6a96-4fbe-8b91-05972587c0311.gif)
7.String
packageName
appInfo.packageName;
//得到安装包名称
8.String
version=info.versionName;
//得到版本信息
9.Toast.makeText(test4.this,
packageName:
+packageName+"
version:
+version,
Toast.LENGTH_LONG).show();
10.Drawable
icon
pm.getApplicationIcon(appInfo);
//得到图标信息
11.TextView
tv
(TextView)findViewById(R.id.tv);
//显示图标
12.tv.setBackgroundDrawable(icon);
<
/span>
三、获取安装路径和已安装程序列表
(1)android中获取当前程序路径
2.getApplicationContext().getFilesDir().getAbsolutePath()
3.
(2)android取已安装的程序列表
4.List<
PackageInfo>
packageInfoList
getPackageManager().getInstalledPackages(0);
四、获取图片、应用名、包名
PackageManager
pManager
MessageSendActivity.this.getPackageManager();
2.List<
appList
Utils.getAllApps(MessageSendActivity.this);
3.
for(int
i=0;
i<
appList.size();
i++)
{
4.
PackageInfo
pinfo
appList.get(i);
5.
ShareItemInfo
shareItem
new
ShareItemInfo();
6.
//set
Icon
7.
shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));
8.
Application
Name
shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());
9.
Package
shareItem.setPackageName(pinfo.applicationInfo.packageName);
10.}<
五、解决listview上Item上有按钮时item本身不能点击的问题:
1.
在item试图上面添加代码:
android:
descendantFocusability="
blocksDescendants"
2.2.在listview里
添加代码
focusable="
true"
六、不让文本框输入中文:
[html]
在xml文件里面<
digits="
1234567890qwertyuiopasdfghjklzxcvbnm`-=[]\;
./~!
@#$%^*()_+}{:
?
&
'
2.这样就不会输入中文了。
3.<
七、获取屏幕宽高
DisplayMetrics
displayMetrics
DisplayMetrics();
2.this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
3.int
height
displayMetrics.heightPixels;
4.int
width
displayMetrics.widthPixels;
5.<
八、将TabWidget显示在屏幕下方
设置TabWidget的属性
layout_alignParentBottom="
为了让tabHost显示在下方,要将RadioGroup的layout_gravity设置为bottom,再将FrameLayout的layout_weight设置为1,这样就可以将RadioGroup撑到最下方。
@style/main_tab_bottom"
里面定义了样式文件
九、获取线程ID和线程名称:
Log.v("
@@@@@@@@@@"
Thread.currentThread().getId()+"
+Thread.currentThread().getName());
2.<
十、android中调用其它android应用
ComponentName
comp
ComponentName("
com.Test"
"
com.login.Main"
);
2.
intent
Intent();
intent.setComponent(comp);
intent.setAction("
android.intent.action.VIEW"
startActivity(intent);
6.<
十一、禁止软键盘弹出
EditText有焦点(focusable为true)阻止输入法弹出
editText.setInputType(InputType.TYPE_NULL);
//
关闭软键盘
2.当EidtText无焦点(focusable=false)时阻止输入法弹出
4.InputMethodManager
imm
(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
5.imm.hideSoftInputFromWindow(editText.getWindowToken(),
【Android】EditText标签调用键盘
在xml文件中EditText标签有一个属性android:
editable="
false"
和android:
numeric="
integer"
表示只允许输入数字,此属性可以限制用户只能输入数字内容。
editable表示是否可以输入内容TRUE表示可以输入,false表示不允许输入内容;
当为android:
时,点击输入框,虚拟键盘是显示不出来的,不过当设置了android:
属性时,不管是false还是true,在其后加入android:
属性时,是可以输入数字内容了;
这里没搞明白是怎么回事,也许是numeric把前面的属性覆盖掉了。
当android:
时,在java类里如果再规定EditText.setEnabled(true)时,虚拟键盘还是不会显示的。
十二、模拟器的各种规格与分辨率对照:
1.单位:
像素
2.WVGA854:
854*480
3.WVGA800:
800*480
4.HVGA:
480*320
5.QVGA:
320*240
6.WQVGA432:
432*240
7.WQVGA400:
400*240
十三、调用Android其他Context的Activity
1.Context
c
createPackageContext("
chroya.demo"
Context.CONTEXT_INCLUDE_CODE
|
Context.CONTEXT_IGNORE_SECURITY);
2.//载入这个类
3.Class
clazz
c.getClassLoader().loadClass("
chroya.demo.Main"
4.//新建一个实例
5.Object
owner
clazz.newInstance();
6.//获取print方法,传入参数并执行
7.Object
obj
clazz.getMethod("
print"
String.class).invoke(owner,
Hello"
这个方法有两个参数:
1、packageName
包名,要得到Context的包名
2、flags
标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。
CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。
CONTEXT_IGNORE_SECURITY的意思是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。
十四、android4.0Dialog风格小技巧
4.0上如果还用Theme.Dialog,只能说很土,跟整体UI风格差别很大
请使用android:
theme="
@android:
style/Theme.Holo.DialogWhenLarge"
十五、程序中安装apk
1.Intent
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(“APK”),"
application/vnd.android.package-archive"
其中“apk”为你要安装的那个文件。
十六、获取设备型号、SDK版本及系统版本
1.String
device_model
Build.MODEL;
设备型号
2.String
version_sdk
Build.VERSION.SDK;
设备SDK版本
3.String
version_release
Build.VERSION.RELEASE;
设备的系统版本
十七、图片分析功能
1.public
void
SharePhoto(String
photoUri,final
Activity
activity)
Intent
shareIntent
Intent(Intent.ACTION_SEND);
File
file
File(photoUri);
shareIntent.putExtra(Intent.EXTRA_STREAM,
Uri.fromFile(file));
shareIntent.setType("
image/jpeg"
StartActivity(Intent.createChooser(shareIntent,
activity.getTitle()));
7.}
十八、linux关机命令
在Windows下,按着电源键4秒强制关机,在Linux下强烈不建议这么做。
Windows由于是单用户、“假多”任务的情况,所以即使你的计算机关机,也不会对别人造成影响。
不过在Linux中,由于每个程序都是在后台执行的,因此,在你看不到的屏幕背后可能有很多人同时在你的主机上工作。
而且,若不正常关机可能会造成文件系统的损毁。
所以,正常情况下,要关机时需要注意下面几件事情:
(1)查看系统的使用状态。
要看目前有谁在线,可以用who命令。
要看网络的联机状态,可以用netstat-a命令。
要看后台执行那个的程序可以执行ps-aux命令。
(2)通知在线用户的关机时刻
这个时候可以使用shutdown命令
1.Shutdown命令:
2.语法:
shutdown[-t秒][-arkhncfF]时间
警告消息
3.-t:
后面加描述表示过几秒之后关机。
4.-k:
不是真的关机,仅仅发出警告消息。
5.-r:
将系统服务停掉之后重启。
6.-h:
将系统服务停掉之后立即关机。
7.-f:
关机并开机之后,强制跳过fsck的磁盘检查。
8.-F:
系统重启之后,强制进行fsck的磁盘检查。
9.-c:
取消已经进行的shutdown命令内容。
10.
11.另外,重启关机命令有reboot、halt、poweroff。
其实在默认情况下,都完成一样的工作。
12.halt先调用shutdown,而shutdown最后调用halt。
不过,shutdown可以根据目前已经启动的服务来逐次关闭服务后才关机;
而halt能够在不理会目前系统情况下,进行硬件关机的特殊功能。
13.
14.除了这些,还有一个关机命令是init
0
15.init是切换执行等级的命令。
Linux共有7种执行等级,比较重要的是下面4种等级:
16.run
level
0:
关机
17.run
3:
纯命令行模式
18.run
5:
含有图形界面模式
19.run
6:
重启
十九、让自己的应用不被kill掉
可以在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java这个类的forceStopPackage中加一个条件:
forceStopPackage(final
packageName)
if
(checkCallingPermission(android.Manifest.permission.FORCE_STOP_PACKAGES)
PackageManager.PERMISSION_GRANTED)
msg
Permission
Denial:
forceStopPackage()
from
pid="
+
Binder.getCallingPid()
uid="
Binder.getCallingUid()
requires
android.Manifest.permission.FORCE_STOP_PACKAGES;
Slog.w(TAG,
msg);
throw
SecurityException(msg);
}
11.
long
callingId
Binder.clearCallingIdentity();
12.
try
IPackageManager
ActivityThread.getPackageManager();
14.
int
pkgUid
-1;
15.
synchronized(this)
16.
17.
pm.getPackageUid(packageName);
18.
catch
(RemoteException
e)
19.
20.
(pkgUid
==
-1)
21.
Invalid
packageName);
22.
return;
23.
24.
//begin:
加入一个判断条件
25.
(packageName.equals("
你的进程名"
))
26.
27.
28.
//end:
forceStopPackageLocked(packageName,
pkgUid);
29.
30.
finally
31.
Binder.restoreCallingIdentity(callingId);
32.
33.
这样的话在任务管理器里可以保证KISS不掉的;
还有在这个方法上还有个方法clearApplicationUserData中保证如果是该进程就不让调用forceStopPackage()方法。
另:
其他方法:
1,首先在你的service的onDestory方法里面写上启动你自己的代码,为什么要写这个?
因为如果用户是在设置->
应用程序->
正在运行服务这里面杀掉你service的话会调用到onDestory方法的,这里就可以启动了,
2:
监听屏幕关闭广播,屏幕已关闭,就启动服务。
监听屏幕解锁广播,一样的道理,这样,基本上,你的service就达到永不停止了。
对用户来说有点变态,但很多软件都这样。
二十、EditText获取焦点:
1.EditText.requestFoucus()
二十一、获取手机屏幕分辨率
1.DisplayMetrics
dm
DisplayMereics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float
dm.widthP