2017-06-01 240 views
-3

我正在處理一個應用程序,我需要使用推送通知。我知道推送通知是一個正常的許可,所以我不能在運行時詢問它。但是我會在用戶下載並安裝應用程序時插入權限,通知應用程序應該發送推送通知。 我該怎麼做?我必須在清單中插入一些東西? 謝謝請求推送通知的權限

+0

可能重複:https://stackoverflow.com/questions/37294076/push-notifications-gcm-permission-at-runtime –

+0

您可以通過顯示自己的對話框和維護'SharedPreference'複製運行時行爲看看它是否被授予或不.. –

回答

1

但我會在用戶下載並安裝應用程序時插入權限,通知應用程序應發送推送通知。我該怎麼做?

不支持,對不起。

0

試試這個 在你活動類添加婁代碼

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

作爲回答here你不需要推送通知權限。

其實推送通知權限橫亙在普通類別 權限,如Internet的權限不是在危險類別 權限。

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

雖然由於您是 訪問用戶數據,聯繫人/位置屬於危險權限,因此始終需要詢問用戶是否允許它。

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