而新版的文件选择返回的类似下面:
content://com.android.providers.downloads.documents/document/152
这种无法通过uri.getPath()获取文件路径。
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
private boolean hasNavBar(Context context) {
Resources res = context.getResources();
int resourceId = res.getIdentifier("config_showNavigationBar",
"bool","android");
if (resourceId != 0) {
boolean hasNav = res.getBoolean(resourceId);
String sNavBarOverride = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
try {
Class c = Class.forName("android.os.SystemProperties");
Method m = c.getDeclaredMethod("get", String.class);
m.setAccessible(true);
sNavBarOverride = (String) m.invoke(null,"qemu.hw.mainkeys");
} catch (Throwable e) {
sNavBarOverride = null;
}
}
// check override flag (see static block)
if ("1".equals(sNavBarOverride)) {
hasNav = false;
} else if ("0".equals(sNavBarOverride)) {
hasNav = true;
}
return hasNav;
} else { // fallback
return !ViewConfiguration.get(context).hasPermanentMenuKey();
}
}
super.onCreate(savedInstanceState);会报错,这个Activity没有被正常的初始化,Activity的父父类ContextWrapper的构造函数需要Context。只能修改要被调用的Activity了,注释掉上面出错的那行,然后提供一个有参构造函数,传一个Context过去,以后被调用的Activity里面只能使用这个Context了.
String dexPath = Environment.getExternalStorageDirectory()
+ "/Test/AAA.apk";
PackageInfo packageInfo = getPackageManager().getPackageArchiveInfo(
dexPath, PackageManager.GET_ACTIVITIES);
String activityName = packageInfo.activities[0].name;
File dirFile = getDir("whocares", 0);
DexClassLoader loader = new DexClassLoader(dexPath,
dirFile.getAbsolutePath(), null,
ClassLoader.getSystemClassLoader());
try {
Class clz = loader.loadClass(activityName);
Constructor constructor = clz
.getConstructor(new Class[] { Context.class });
Activity activity = (Activity) constructor
.newInstance(new Object[] { this });
Method create = clz.getDeclaredMethod("onCreate",
new Class[] { Bundle.class });
create.setAccessible(true);
create.invoke(activity, new Object[] { null });
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
android.resource://[package]/[res id]
android.resource://[package]/[res type]/[res name]
Uri.parse("android.resource://com.example.test/“ + R.drawable.ic_launcher)
Uri.parse("android.resource://com.example.test/drawable/ic_launcher")
<intent-filter>
<action android:name="android.intent.action.ASSIST" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="com.android.systemui.action_assist_icon"
android:resource="@android:drawable/sym_def_app_icon" />
203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
##---------------End: proguard configuration for Gson ----------
-keep class android.support.v7.widget.SearchView { *; }
private boolean checkStatusbar(){
Rect rect=new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
//屏幕高度还有别的办法得到,不赘述
return (rect.bottom-rect.top)
==getResources().getDisplayMetrics().heightPixels;
}
private int getStatusBarHeight() {
int result = 0;
int resourceId = getResources()
.getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"></link> <script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript">
public static void showDetailsOfApp(Context context,
String packageName) {
Intent intent = new Intent();
final int apiLevel = Build.VERSION.SDK_INT;
if (apiLevel >= 9) {
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
// .setData(Uri.fromParts("package", packageName, null));
.setData(Uri.parse("package:"+packageName));
} else {
final String appPkgName = (apiLevel == 8 ? "pkg"
: "com.android.settings.ApplicationPkgName");
intent.setAction(Intent.ACTION_VIEW)
.setClassName("com.android.settings",
"com.android.settings.InstalledAppDetails")
.putExtra(appPkgName, packageName);
}
context.startActivity(intent);
}
listView.post(new Runnable() {
@Override
public void run() {
listView.setSelection(position);
}
});
越来越讨厌的知乎上终于又看到一个有共鸣的回复,更难得有人也这么喜欢史铁生:
(http://www.zhihu.com/question/20821346/answer/16299563) ------------------------------------ 读过楼上几位的答案,感觉理由很漂亮,但是也很空洞。其实读书根本不需要理由,因为抱着一个功利的目的读书,你最终一定会感到失望。屡次失望就会带来兴趣的消磨,什么事情一旦失去兴趣,再美好的事物都会变成一种折磨。 记得国外曾经做过一个实验,说读书是各种学习方式中,效率最低下的。读一本书带来的收获,并不比你看一部电影、做一次旅行、听一节公开课、进行一场有效沟通得到的更多,而且以上方式都比读书来的更加轻松自在。 所以我的读书态度就是:想读就读。就这么简单。不要纠结于一个读书的理由或者目的。 我的书龄不长不短,今年刚好十个年头。从我十岁起第一次独立阅读长篇小说开始,我始终保持着每天不少于四个小时的读书时间。我家住在新疆,2009年7月,离我家车程需要两小时的乌鲁木齐市爆发了群体性事件(我不说,大家都懂),全疆断网十月零十天。那是我读书速度达到神级的一段日子,平均每天阅读量十万字,最高一次是早上九点到晚上九点,十二小时读了二十一万字。此后再难超越。这件事情证明,读书最好的方式就是:远离手机和网络。 我热爱阅读,不像大家的理由那样光辉璀璨,其中多少有些无奈。因为身体原因,我从小就不能走路,所以也没有上学。因为没有上学,所以朋友极少,大多是家里的亲人以及儿时的玩伴。朋友们总说我有点自负,其实他们哪里明白,我的自负,正是源于自卑。过去,每当看着身边的同龄人一起出去逛街、滑雪、跳舞、打保龄球,我都很想说一句:我也想去。可是我仅有的自尊心却不允许自己向人示弱。我只是淡淡地告诉他们:我不喜欢出去玩,我喜欢躺在床上读莎士比亚。 久而久之,读书就成了我的一个习惯。而随着时间流逝,曾经的朋友大多有了各自的学业、事业、爱情和他们自己的生活,但我的世界里,只有那些隽永的文字和古老的书籍陪伴我。如今我可以坦白地说,最初读书很大程度上是为了装酷,现在读书更多是为了了解自己不知道的世界。我一向唾弃“天赋论”,如果上天真的赐予每个人一种天赋的话,那我想自己最大的天赋就是“对未知事物抱有一种生吞活剥的好奇心”,看见一本没读过的书,我就想一口气翻到底,读到一句喜欢文字,我就会反复阅读恨不能出口成诵。这一切没有任何理由和目的,仅仅是因为热爱。而且我也明白,认真读书,认真生活,这是我唯一能做到的事情。 十岁时阅读的第一部长篇小说,是从姐姐家借来的郭敬明的《梦里花落知多少》,当时觉得很有趣,过了两年觉得很无聊。喜欢过一段时间的日系推理小说,诸如江户川乱步、东野圭吾、岛田庄司、松本清张、横沟正史、宫部美幸等人,都是我偏爱的作家。十二岁以后,基本上都在阅读金庸、古龙、黄易、梁羽生、倪匡等人的作品,尤其是金庸先生的大作“飞雪连天射白鹿,笑书神侠倚碧鸳”,我都看得十分着魔。十四岁左右,有幸拜读过几位俄国硬汉的作品,诸如契科夫、托尔斯泰、高尔基、奥斯特洛夫斯基等等。十五岁是我人生的一个转折点,是我经历过最痛苦和最黑暗的日子。陪我度过那一时期的是各种人物传记,我不是看他们如何攀上辉煌的顶峰,而是看他们如何度过人生的低谷。我如今的价值观、人生观和世界观,我想都是在那时形成的。 对我比较重要的作家有两个,一是史铁生,二是周德东。史铁生老师的那本《我与地坛》,不知道陪我度过了多少个夜晚,它在我心中的地位,不亚于《圣经》在基督徒心中的神圣。而周德东这个恐怖小说家,是第一个在写作技巧上给我带来启示的人。他的恐怖小说传递给我的不仅是故事,还有人与生活的戏剧性。 其它书籍不知一时该从何提起,或者根本没有必要提起,那些走马观花读过的书,不提也罢。 如今,我更喜欢阅读古典文学,没什么理由,只是兴趣变了。我从来不看网络小说,即使看,也是等到几年以后,人家都看完大结局了,我才从头开始看,什么《鬼吹灯》、《盗墓笔记》、《明朝那些事儿》都是如此。我曾经按自己的喜好,把所有书分为“优、良、中、劣”四个等级,结果发现光是“优”的书,我这辈子都读不完。所以,我不愿意将自己本就有限的时间,浪费在那些尚未经过时间检验的书上。 旁人说我读书很多,对于这一点,我是不认可的。我反倒一直认为,自己读过的书,真的少之又少,知识面也狭窄的可怜。这绝不是读书人惯有的谦虚,而是我心里的实话。我对读书的理解,早已经在自己的日记中写过:读书不光不能增长我们的见识,反倒更加暴露我们本身的无知。世界是庞大的,你所掌握的那点儿自以为是的知识,仅仅只是沧海一粟而已,甚至对整个世界而言,它根本不配称为“知识”,那不过就是一点儿必不可少的生活常识。说到底,每个人都是一只坐井观天的蛙,仅此而已。 我说了这么多,不知道题主满不满意。其实我想表达的东西,只有一句话:人生本就短暂,与其把时间花费在“我为什么读书”的问题上,不如立刻拿本书来读一下,我相信你会找到答案的。 |