- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Android 手机版本:6.0.1 (Android marshmallow)
Android 目标 SDK 版本 25
我在 Android 按钮中调用 ActivityCompat.requestPermissions 但不显示处理它的对话框
按钮
printrequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
try{
verifyStoragePermissions(SickFragmentId.this);
}
catch(Exception e ){
Log.e("LoginActv: Save Block", e.getMessage());
e.getStackTrace();
}
String req = textViewReqNo.getText().toString();
String name = Name.getText().toString();
String branch = Branch.getText().toString();
String departement_position = Departement_Position.getText().toString();
String status = Status.getText().toString();
String description = Description.getText().toString();
String type = Status.getText().toString();
String date = Date.getText().toString();
Intent showId = new Intent(SickFragmentId.this, print.class);
startActivity(showId);
}
});
然后我将代码放在 Print.java 中
public class print extends Activity {
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
public static void verifyStoragePermissions(Activity activity) {
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
Log.e("Permission value", permission + " ");
if (permission != 1) {
Log.e("Permission ask", "Asking, permission not granted");
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 200) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.e("PERResult", "Granted");
String FILE = Environment.getExternalStorageDirectory().toString()
+ "/PDF/" + "AldanRIZKISANTOSA.pdf";
Document document = new Document(PageSize.A4);
// Create Directory in External Storage
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/PDF");
myDir.mkdirs();
// Create Pdf Writer for Writting into New Created Document
try {
PdfWriter.getInstance(document, new FileOutputStream(FILE));
// Open Document for Writting into document
document.open();
// User Define Method
addMetaData(document);
addTitlePage(document);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close Document after writting all content
document.close();
Toast.makeText(this, "PDF File is Created. Location : " + FILE,
Toast.LENGTH_LONG).show();
} else {
Log.e("PERResult", "Denied");
Toast.makeText(getApplicationContext(), "PERMISSION_DENIED", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
// Set PDF document Properties
public void addMetaData(Document document)
{
document.addTitle("RESUME");
document.addSubject("Person Info");
document.addKeywords("Personal, Education, Skills");
document.addAuthor("TAG");
document.addCreator("TAG");
}
public void addTitlePage(Document document) throws DocumentException {
// Font Style for Document
Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD);
Font titleFont = new Font(Font.FontFamily.TIMES_ROMAN, 22, Font.BOLD
| Font.UNDERLINE, BaseColor.GRAY);
Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD);
Font normal = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL);
// Start New Paragraph
Paragraph prHead = new Paragraph();
// Set Font in this Paragraph
prHead.setFont(titleFont);
// Add item into Paragraph
prHead.add("RESUME – Name\n");
// Create Table into Document with 1 Row
PdfPTable myTable = new PdfPTable(1);
// 100.0f mean width of table is same as Document size
myTable.setWidthPercentage(100.0f);
// Create New Cell into Table
PdfPCell myCell = new PdfPCell(new Paragraph(""));
myCell.setBorder(Rectangle.BOTTOM);
// Add Cell into Table
myTable.addCell(myCell);
prHead.setFont(catFont);
prHead.add("\nName1 Name2\n");
prHead.setAlignment(Element.ALIGN_CENTER);
// Add all above details into Document
document.add(prHead);
document.add(myTable);
document.add(myTable);
// Now Start another New Paragraph
Paragraph prPersinalInfo = new Paragraph();
prPersinalInfo.setFont(smallBold);
prPersinalInfo.add("Address 1\n");
prPersinalInfo.add("Address 2\n");
prPersinalInfo.add("City: SanFran. State: CA\n");
prPersinalInfo.add("Country: USA Zip Code: 000001\n");
prPersinalInfo
.add("Mobile: 9999999999 Fax: 1111111 Email: john_pit@gmail.com \n");
prPersinalInfo.setAlignment(Element.ALIGN_CENTER);
document.add(prPersinalInfo);
document.add(myTable);
document.add(myTable);
Paragraph prProfile = new Paragraph();
prProfile.setFont(smallBold);
prProfile.add("\n \n Profile : \n ");
prProfile.setFont(normal);
prProfile
.add("\nI am Mr. XYZ. I am Android Application Developer at TAG.");
prProfile.setFont(smallBold);
document.add(prProfile);
// Create new Page in PDF
document.newPage();
}
}
但是权限对话框不显示
在我使用 ActivityCompat.requestPermissions 之前我有错误
java.io.FileNotFoundException: /storage/emulated/0/PDF/Name.pdf (Permission denied)
在我使用 ActivityCompat.requestPermission 之后我有错误
E/Permission value: -1
E/Permission ask: Asking, permission not granted
最佳答案
if( hasPermissionWriteExternalStorage()){
//do smth
}
public boolean hasPermissionWriteExternalStorage() {
if (Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_STORAGE);
return false;
}
} else { //permission is automatically granted on sdk<23 upon installation
return true;
}
}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {case PERMISSION_WRITE_EXTERNAL_STORAGE: {
if (getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
//do smth
} else {
Toast.makeText(getActivity(), "Access Denied", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
关于android - ActivityCompat.requestPermissions 在 Android 中不显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45933131/
运行时权限对话框在 Android 6.0 或更高版本中显示,因此在 API 级别 23 中添加的 Activity.requestPermissions(...) 是有意义的。 但是为什么还有一个(
当我的Activity来电ActivityCompat.requestPermissions ,不出现 UI 对话框。 ActivityCompat.requestPermissions(HomeAc
问题... 我正在尝试在 Android Marshmallow 中实现运行时权限,同时保持向后兼容性。我以前已经成功完成过此操作,我不确定这次有什么不同。我已经在物理 Note 5(运行 Mallo
我发现了很多具有相同威胁的相似主题,但我仍然找不到解决我的问题的方法。我写这段代码是为了向应用程序授予写入权限,但没有显示对话框。我进入监视器没有写权限消息。 if(ContextCompat.che
由于 Android 去年添加,Android API 版本 23 及更高版本中的运行时权限问题,我有一个关于 ActivityCompat.requestPermissions(thisActivi
我的 Cordova 应用程序使用 DeviceMotionEvent.requestPermission() 函数来请求用户访问 iOS 设备方向的权限。但iOS生成的提示是: "" Would L
浏览器一直放弃请求通知权限,只是决定它是默认的。我怎样才能让它请求许可,这样我才能真正接受? 最佳答案 这个有效: Notification.requestPermission().then(func
没有调用 onRequestPermissionsResult() 的任何原因? 在 Activity A 中,我有 requestPermission(Permission A, Permissio
我有一个应用程序需要请求永久访问地理定位权限(也在后台)以收集数据。在应用程序启动时,我会像这样进行权限检查(简化) private static function check():void{
在 AndroidManifest.xml 中: 在 PreActivity.java 中 if (PermissionChecker.checkSelfPermission(preActivit
我遇到一个问题,一个函数的实现在较新的浏览器中发生了变化。我想根据实现相应地调用该函数。 Notification.requestPermission().then(function (permiss
我正在尝试请求 ACCESS_FINE_LOCATION 权限以获取用户的当前位置。 我的日志记录表明我的应用在查询 ContextCompat.checkSelfPermission() 时目前没有
调用 ActivityCompat.requestPermissions 不显示 UI 对话框。 ActivityCompat.requestPermissions(MainActivity.this
我对编程比较陌生,刚刚制作了一个相机应用程序,其预览窗口保存在表面 View 中,需要访问位置,显然还有相机。 但是,在显示一个权限的 requestPermissionRationale 并且用户同
if (ContextCompat.checkSelfPermission(RegisterActivity.this, Manifest.permission.READ_PHONE_STA
我不想让我的用户在他们真正需要应用程序之前允许通知。 因此,当用户在我的应用程序中安排本地通知时,我想请求通知权限,如果用户接受,则设置本地通知。 问题是 PushNotificationIOS.re
Notification.requestPermission() 函数已从回调更改为基于 promise 的版本。您可以在 Mozilla documentation 中看到这一点. 为当前浏览器选择
这可能是一个非常愚蠢的问题。 我有一个几年前使用 Eclipse 编写的应用程序,适用于 Android OS 8 (2.3.x)。我正在尝试将其带入现代世界(仍然使用 8 构建,但目标是 28),并
我正在尝试使用连接到我的 Android 设备的 USB 摄像头设备。所以最初我通过 UsbManager.getDeviceList() 方法获得了连接的 USB 设备的详细信息。然后我遍历每个设备
我需要在我的应用程序中访问照片和 map 。所以我在 plist 文件中添加了相应的功能。但是我需要检查请求是否被允许或拒绝。我不知道该怎么做,请建议我这个。 最佳答案 您必须明确检查不同类型的权限,
我是一名优秀的程序员,十分优秀!