2016-05-16 14 views
-2

マシュマロで動的にカメラ、連絡先、場所、保存場所などのアプリの権限をプログラムで有効にする方法マシュマロ!プログラムでアプリの権限を有効にする方法

私はコードを持っていますが、 'Deny'のボタンが開いたダイアログボックス& '許可'、ダイアログなしで直接アプリケーションの権限を有効にしたいと思います。何がやりたいことはできません

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

    requestPermission(); 

} 


private void requestPermission(){ 
    if (ActivityCompat.shouldShowRequestPermissionRationale(WelcomeActivity.this,Manifest.permission.ACCESS_FINE_LOCATION)){ 
     Toast.makeText(WelcomeActivity.this,"1. GPS permission allows us to access location data. Please allow in App Settings for additional functionality.",Toast.LENGTH_LONG).show(); 
     ActivityCompat.requestPermissions(WelcomeActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSION_REQUEST_CODE); 
    } else { 
     Toast.makeText(WelcomeActivity.this,"2. GPS permission allows us to access location data. Please allow in App Settings for additional functionality.",Toast.LENGTH_LONG).show(); 
     ActivityCompat.requestPermissions(WelcomeActivity.this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},PERMISSION_REQUEST_CODE); 
    } 
} 


@Override 
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case PERMISSION_REQUEST_CODE: 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       Toast.makeText(WelcomeActivity.this, "Permission Granted, Now you can access location data.", Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(WelcomeActivity.this, "Permission Denied, You cannot access location data.", Toast.LENGTH_LONG).show(); 
      } 
     break; 
    } 
} 
+0

この答えを試すhttp://stackoverflow.com/a/35495855/3678308 –

+0

これを行うと、新しいアクセス許可モデルの目的が完全に無効になります。 –

答えて

0

コードは...直接ではなく、ダイアログボックスで許可「をオン」に。マシュマロの許可システムの全体的な考え方は、ユーザーが許可を与えるかどうかを決定できるようにすることです。アプリケーションが許可していないときには、それに応じて対応するようにアプリを計画します。

+0

私にとっては大丈夫ですが、ユーザーは常にアプリの設定ページにアクセスして権限を有効にしたり、権限ごとにポップアップ/ダイアログを表示したりするのは意味がありません。 –

+0

はい、この変更は非常に議論の余地がありました。これは、多くのアプリに20種類の権限のリストがあり、ユーザーが権限が必要なものが実際に分からなかったために導入されました。今、Googleは、ユーザが実際に何が何をしているのかを知り、恐ろしい、長い許可リストを削除することを望んでいます。 – Kelevandos

+0

Googleが決定したので、これを調整して、アプリを再設計してそれを考慮する必要があります。そのように簡単です。 – Kelevandos

0

あなたのユーザーは、リクエストに応じて自動許可を与えることができる「私に再度尋ねないでください」というオプションが必要です。あなたは、あなたのアプリケーションでそれを追加する際に説得力のあるケースを作成し、アクセス許可が失われるたびにキャッチする必要があります

+0

大丈夫ですが、それでも多くのアクセス許可を与える必要がある場合、一回のヒットでユーザーにオプションを与える別の方法はありません。すべてのアクセス権を有効にしてください。 –

関連する問題