1、筛选本地文件,通过uri获取文件的路径
/**
* 选择本地文件,获得文件的 uri 。
* 通过setType可以设置文件类型:比如筛选音视频文件、图片等等
*/
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(Intent.createChooser(intent, "choose file"), myRequestCode);
/**
* override 该方法,获得文件的 uri
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == myRequestCode) {
Uri uri = data.getData();
String filePath = UriUtil.getFilePathFromUri(getApplicationContext(), uri);
}
}
2、进入应用的详细设置页面
/**
* 参考博客
* http://blog.csdn.net/cbbbc/article/details/60148864
*/
Intent intent = new Intent();
if(Build.VERSION.SDK_INT >= 9){
intent.setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.fromParts("package", getPackageName(), null));
} else if(Build.VERSION.SDK_INT <= 8){
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName("com.android.settings","com.android.settings.InstalledAppDetails");
intent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());
}
startActivityForResult(intent , myRequestCode);
3、 弹出“在其他应用上层显示”的设置页面,以及如何判断App拥有相关权限
/**
* 弹出在其他应用上显示的设置页面
*/
if(Build.VERSION.SDK_INT >= 23) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.fromParts("package", getPackageName(), null));
startActivity(intent);
}
/**
* 如何判断App是否有该权限,可参考以下代码
*/
if (PermissionUtils.hasSelfPermissions(target, PERMISSION_NEEDSYSTEMALERTWINDOWPERMISSIN) || Settings.canDrawOverlays(target)) {
target.needSystemAlertWindowPermissin();
}
else {
if (!PermissionUtils.shouldShowRequestPermissionRationale(target, PERMISSION_NEEDSYSTEMALERTWINDOWPERMISSIN)) {
target.OnNeverAskAgain();
} else {
target.OnPermissionDenied();
}
}
4、在Application中启动Activity
Intent intent = new Intent(appContext, ***Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
5、指定URL,用浏览器打开
String url = "https://github.com/liaohuqiu/android-UCToast";
Intent myIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(myIntent);