请求推送通知的许可

时间:2017-06-01 10:34:00

标签: android push-notification android-permissions

我正在使用应用程序,我需要使用推送通知。我知道推送通知是正常的权限,所以我不能在运行时询问它。但是我会在用户下载并安装应用程序时插入权限,通知应用程序应该发送推送通知。 我该怎么做?我必须在清单中插入一些东西? 感谢

3 个答案:

答案 0 :(得分:17)

已回答here您不需要推送通知权限

  

实际上推送通知权限位于普通类别中   像INTERNET许可的权限不在危险类别中   权限。

     

您不必要求推送通知权限。

     

虽然联系人/位置是危险权限,但是因为您是   访问用户数据。因此总是要求用户允许它。

     

希望你明白。   https://developer.android.com/guide/topics/security/permissions.html

答案 1 :(得分:1)

  

但我会在用户下载并安装应用程序时插入权限,通知应用程序应发送推送通知。我该怎么办?

不支持,抱歉。

答案 2 :(得分:-1)

试试这个 在您的Activity类中添加以下代码

private static final int NOTIFICATION_PERMISSION_CODE = 123;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_activity);

    requestNotificationPermission();

   //some code

}

 private void requestNotificationPermission() {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_NOTIFICATION_POLICY) == PackageManager.PERMISSION_GRANTED)
        return;

    if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NOTIFICATION_POLICY)) {

    }

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_NOTIFICATION_POLICY}, NOTIFICATION_PERMISSION_CODE );
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

    //Checking the request code of our request
    if (requestCode == NOTIFICATION_PERMISSION_CODE ) {

        //If permission is granted
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            //Displaying a toast
            Toast.makeText(this, "Permission granted now you can read the storage", Toast.LENGTH_LONG).show();
        } else {
            //Displaying another toast if permission is not granted
            Toast.makeText(this, "Oops you just denied the permission", Toast.LENGTH_LONG).show();
        }
    }
}