小编dsc*_*ett的帖子

如何在现有应用程序上实现Android 6.0运行时权限

问题:

我有一个现有的应用程序,我想实现Android 6.0的运行时权限.我在运行时权限上已经阅读了很多不同的东西,但我似乎无法绕过所有不同的片段.我找到的任何内容实际上都没有显示如何将其实现到现有的Activity中.

其他要点

当我运行针对SDK v23的现有应用程序时,我得到了预期的权限错误,但我得到的权限错误甚至不是我请求的权限.我在Manifest文件中有SEND_SMS权限,但我得到的错误是READ_SMS.我的应用程序在6.0之前运行正常,没有READ_SMS.

我希望我的应用程序在应用程序启动后立即请求许可,因为应用程序的唯一目的是发送短信,因此没有该权限,该应用程序没有其他用途.

问题:

一旦应用程序启动,我如何将SEND_SMS的运行时权限实现到我现有的Activity中?

这些权限的处理是否需要在后台线程中运行?

我是否还需要READ_SMS的权限,因为这是它给出的权限错误(即使该权限从未在我的应用程序上使用过)?

我现有的活动:

public class MainActivity extends Activity implements OnClickListener {

SimpleCursorAdapter mAdapter;
AutoCompleteTextView txtContract;
EditText txtTrip;
EditText txtDate;
Button btnSend;
Button btnUpdate;
String today;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";

private static final String API_KEY = "abcxyz";
private static final String CONTRACT_REGEX = "^([a-zA-Z0-9_-]){5}$";
private static final String TRIP_REGEX = "^([a-zA-Z0-9_-]){1,10}$";
private static final String DATE_REGEX = "^\\d{2}\\/\\d{2}\\/\\d{4}$";
private static final String PHONE_NUMBER = "1234567890";
private static final …
Run Code Online (Sandbox Code Playgroud)

android android-6.0-marshmallow runtime-permissions

6
推荐指数
1
解决办法
2351
查看次数