私は、ユーザーが自分の電話番号でログインできる「数字」を使用しています。それはTwitterによって提供されています。とにかく、私はAPIレベル23のために開発しているので、私はユーザーから連絡先を読む許可を要求する必要があります。私はonClick()
メソッドをオーバーライドしています。これは実行時に許可を求めるために私に提供しています。しかし、私はコンストラクタのActivity
をどのように渡すかわかりません。私は許可を要求するために活動を取得する必要があります
これは私がしてインスタンス化していたクラスです:
public class DigitsRegisterButton extends DigitsAuthButton {
final int loginPerm = 2;
LoginActivity activity;
public DigitsRegisterButton(Context c) {
super(c);
init();
}
public DigitsRegisterButton(Context c, AttributeSet attrs) {
super(c, attrs);
init();
}
public DigitsRegisterButton(Context c, AttributeSet attrs, int defStyle) {
super(c, attrs, defStyle);
init();
}
@Override
public void onClick(View v) {
int loginPermissionCheck = ContextCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA);
if (loginPermissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(/* Need Activity Here */, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, loginPerm);
}
super.onClick(v);
}
}
onClick()
DigitsAuthButton
でオーバーライドされます:
@Override
public void onClick(View v) {
final DigitsAuthConfig digitsAuthConfig = digitsAuthConfigBuilder.build();
getDigitsClient().startSignUp(digitsAuthConfig);
if (onClickListener != null) {
onClickListener.onClick(v);
}
}
活動クラス:
public class LoginActivity extends AppCompatActivity implements LocationListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_nav_bar);
DigitsRegisterButton digitsButton = (DigitsRegisterButton) findViewById(R.id.account_auth_button);
digitsButton.setCallback(new AuthCallback() {
@Override
public void success(DigitsSession session, String phoneNumber) {
// TODO: associate the session userID with your user model
//username phone number, password is auth session
Toast.makeText(getApplicationContext(), "Authentication successful for " + phoneNumber, Toast.LENGTH_LONG).show();
//new Login(getParentFragment(),)
}
@Override
public void failure(DigitsException exception) {
Log.d("Digits", "Sign in with Digits failure", exception);
}
});
}
@SohailZahidこれから具体的に実装する必要があるのは何ですか?許可を求める必要があることはわかっていますが、アクティビティを延長しないクラスでリクエストしています。 –
実行時アクセス許可はアクティビティ参照を開始する必要がありますので、アクティビティコードで取得してください。 –
私はすでに同じものがここで一つの外観を持っていますhttp://stackoverflow.com/questions/38141523/directory-creation-not-working-in-marshmallow-android/38141778#38141778 –