【问题标题】:Ask permission for push notification请求推送通知的权限
【发布时间】:2017-11-02 11:09:18
【问题描述】:

我正在开发一个应用程序,我需要使用推送通知。我知道推送通知是一个正常的权限,所以我不能在运行时询问它。但是我会在用户下载和安装应用程序时插入权限,以及应用程序应该发送推送通知的通知。

我该怎么做?我必须在清单中插入一些东西吗?

【问题讨论】:

  • 您可以通过显示您自己的对话框并维护SharedPreference 来查看它是否被授予来复制运行时行为..
  • 在 Android 上推送和通知 2 个完全不同的东西。不清楚你在问什么。

标签: android push-notification android-permissions


【解决方案1】:

正如here 的回答,您不需要推送通知的权限

其实推送通知权限属于普通类 Internet 等权限,不属于危险类别 权限。

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

虽然联系人/位置是危险的权限,因为您是 访问用户数据。所以总是需要询问用户是否允许。

https://developer.android.com/guide/topics/security/permissions.html

【讨论】:

    【解决方案2】:

    试试这个:

    在您的 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();
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      但是我会在用户下载和安装应用程序时插入权限,以及应用程序应该发送推送通知的通知。我该怎么做?

      不支持,抱歉。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-12-29
        • 2022-08-08
        • 2023-03-18
        • 1970-01-01
        • 1970-01-01
        • 2018-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多