2017-08-09 19 views
-4

アプリケーションを開いたときに権限が取り消されるとどうなりますか?私はすでに試してみたところ、アプリケーションのプロセスが突然終了することが判明しました。アプリケーション内のすべてが単に停止しました。そしてローカルに保存されたApputil値iの許可をオフにする場合はnullになり、誰もがその理由を知っているopened.Ifアプリがあるときに私を示唆し、この問題を解決する方法をしてくださいRuntime権限Marshmallow Android

// I am extending drawer activity to get the saved card number here 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    LayoutInflater inflater = (LayoutInflater) this 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View contentView = inflater.inflate(R.layout.activity_reward_yourself, 
      null, false); 
    titleTextView.setText(R.string.reward_yourself_title); 
    frameLayout.addView(contentView, 0); 
    rewardsSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.rewardsSwipeContainer); 
    grid = (GridView) findViewById(R.id.gridReward); 
    tvPointsValue = (TextView) findViewById(R.id.tvPointsValue); 
    tvFirstText = (TextView) findViewById(R.id.tvFirstText); 
    rewardsSwipeLayout.setOnRefreshListener(this); 
    rewardsSwipeLayout.setColorScheme(android.R.color.black, 
      android.R.color.white, android.R.color.darker_gray, 
      android.R.color.black); 
    initialUiSetUp(); 
    program = new Program(); 
    String str= AppUtil.fxs.getCardNumber(); //becomes null when location is off when app is opened 

    checkPermission(MyActivity.this); 
    mAccInfo = new Account(); 
    mTask = new GetAccount().execute(); 
} 
+1

コードはどこですか? – Piyush

+1

このようなアクセス許可が必要なメソッドを呼び出すと、アクセス許可を定期的にチェックする必要があります。そうすれば、アプリを終了させるのではなく、権限が取り消されたときの対処方法を制御できます。 – Kharda

+0

@Piyush私はコードの一部を添付しました。あなたの返信のためにありがとうございます – Ramya

答えて

0

あなたは常に許可が付与されているかどうかを明示的に確認する必要がありますシステムによって。例えば、私の場合、私は自分のアプリで場所にアクセスしています。私は

  if (!PermissionRequestManager.checkIfAlreadyhavePermission(getActivity(),Manifest.permission.ACCESS_FINE_LOCATION)) { 
       PermissionRequestManager.requestPermissionAccessFineLocation(getActivity()); 
      } else onLocationPermissionGranted(); 
+0

返信ebin ..ありがとうございましたDraweractivity.classからカード番号を取得するためにここで引き出しアクティビティを拡張していますが、もし私が場所の許可を無効にした場合、currentActivity.classそのApputil drawer activity.classの.savecardnumberがnullになる – Ramya

+0

Apputilクラスはカード番号を保存しますか? –

+0

引き出しのアクティビティ – Ramya

0

以下のように場所の権限をチェックすることを呼び出す前に、私はhope..Iが最善の解決策がにある後半....

ないですので、すべての場所のタスクは、onLocationPermissionGranted機能()によって行われますサードパーティのライブラリを使用して...

https://github.com/hotchemi/PermissionsDispatcher

私は上記のライブラリを使用している...最も簡単な方法で、実行時のアクセス権を実装します。それはjavaの注釈に最適です。

関連する問題