我已经尝试在我的android应用程序中创建一个用于在运行时请求权限的自定义类。但是系统要求我们只能从活动中请求,所以没有起作用。但是,随着最近发布的支持库版本,即com.android.support:support-compat:27.0.0,在ActivityCompat类中提供了一个新的接口PermissionCompatDelegate,它具有两个方法声明:布尔requestPermissions(Activity Activity,String[]permissions,int requestCode)和布尔onActivityResult(Activity Activity,int requestCode,int resultCode,Intent data)。我需要知道如何和在哪里使用这些方法。我打算将这些方法用于请求运行时权限的自定义类。
编辑-我读过关于在android中请求运行时权限的文档,并在一个活动中使用了上述方法。我不需要知道什么已经存在于可用的文档中。我需要知道是否有任何方法可以为我的目的使用这些方法,即创建一个自定义类来请求运行时权限。
您不需要为权限创建seprate类,您可以在活动中获得运行时权限,如下所示:
private void getRuntimePermissions() {
final String[] NECESSARY_PERMISSIONS = new String[] {
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
if ((ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)
&& (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) {
//Permission already granted
} else {
//ask for permission
ActivityCompat.requestPermissions(getApplicationContext(),
NECESSARY_PERMISSIONS, 123);
}
}
==>>处理(按要求管理或执行任务)用户允许或拒绝权限
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case 123:
if (grantResults.length > 0) {
if ((grantResults[0] == PackageManager.PERMISSION_GRANTED)
&& (grantResults[1] == PackageManager.PERMISSION_GRANTED)) {
//Permission granted
} else {
if ((grantResults[0] == PackageManager.PERMISSION_DENIED && !ActivityCompat
.shouldShowRequestPermissionRationale(
getApplicationContext(),
Manifest.permission.CAMERA))
|| (grantResults[1] == PackageManager.PERMISSION_DENIED && !ActivityCompat
.shouldShowRequestPermissionRationale(
getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE))) {
//Permission deny with never ask again
} else {
//Permission deny
}
}
}
}
}
问题内容: 我有一个 保持地图根据浮动量排序的最佳方法是什么? 是最好的答案??如何使用? 我只创建一次地图,并替换了经常使用的和。 问题答案: 我会用,它实现。正是为此目的而设计的。 例: 有关SortedMap的信息,请参见Java教程页面。 和这里的教程列表相关TreeMap的。
本文向大家介绍python如何使用unittest测试接口,包括了python如何使用unittest测试接口的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python使用unittest 测试接口的具体代码,供大家参考,具体内容如下 1.首先使用 python 的requests 对接口进行测试 2.使用unittest调用接口,且对接口测试的结果进行统计 3.使用suite对c
我不知道如何正确使用比较器接口。 注意:我不想使用我在大多数代码中看到的“一行”比较器实现,这意味着: 再说一遍,我不想使用这个,因为我将对许多不同的ArrayList进行排序,每次这样做似乎都是浪费空间。我想以某种方式让它工作,让我的compareTo方法在一个地方编写一次。 我尝试了许多不同的方法,但我对实现接口还不熟悉,所以我可能遗漏了一些东西。 这是我的Card类和它的比较方法。(注意:让
Elasticsearch 本身不提供对索引的 rename,mapping 的 alter 等操作。所以,如果有需要对全索引数据进行导出,或者修改某个已有字段的 mapping 设置等情况下,我们只能通过 scroll API 导出全部数据,然后重新做一次索引写入。这个过程,叫做 reindex。 之前完成这个过程只能自己写程序或者用 logstash。5.0 中,Elasticsearch 将
ChatGPT的接口如何调用?
我对类上的接口实现的理解是,接口类型引用实现接口的类的对象。 但是当我研究下面的代码片段在上面的代码中使用时… GetConnection(host,username,password)返回对对象的引用(类型为Connection),但DriverManager类中没有实现接口。谁能澄清我的这个疑问..?还是我漏掉了什么? 下面的代码段不能得到相同的东西 createStatement()应该返回