ImageViewを持つフラグメントがあります。 ユーザーがこのイメージをクリックすると、ローカライゼーションのアクセス許可を要求したいが、 "requestPermission()"が実行されても要求ダイアログは表示されません。フラグメント内のrequestPermissionダイアログが表示されない
マイフラグメントonCreateView方法
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View center = inflater.inflate(R.layout.board, container, false);
position = (ImageView) center.findViewById(R.id.position);
position.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION)) {
Toast.makeText(getContext(),
"I need the permission pls",
Toast.LENGTH_LONG).show();
}
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, LOCALIZATION_PERMISSION);
}
}
}
});
return center;
}
NOTE :: shouldShowRequestPermissionRationaleが真なることはありません。私はデバッガでそれを確認します。
私は
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="it.peoople">
<uses-permissions android:name="android.permissions.INTERNET" />
<uses-permissions android:name="android.permissions.READ_EXTERNAL_STORAGE"/>
<uses-permissions android:name="android.permissions.WRITE_EXTERNAL_STORAGE" />
<uses-permissions android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permissions android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="it.peoople.main.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="it.peoople.floating.Messaging"
android:screenOrientation="portrait">
</activity>
<activity android:name="it.peoople.floating.Registration"
android:screenOrientation="portrait">
</activity>
</application>
</manifest>
もマニフェストにNOTE ::許可]ダイアログボックスを許可を管理するには、出演したことがないので、私は「もう聞かない」にチェックすることはありません。
たびに要求権限が実行され、自動的にこのライン
10-09 18:22:50.019 2223-2359/it.peoople D/AppTracker: App Event: stop
10-09 18:22:50.020 2223-2254/it.peoople V/FA: Recording user engagement, ms: 5411
10-09 18:22:50.020 2223-2254/it.peoople V/FA: Using measurement service
10-09 18:22:50.020 2223-2254/it.peoople V/FA: Connecting to remote service
10-09 18:22:50.025 2223-2254/it.peoople V/FA: Activity paused, time: 57774748
10-09 18:22:50.030 2223-2254/it.peoople D/FA: Logging event (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto, engagement_time_msec(_et)=5411, firebase_screen_class(_sc)=Registration, firebase_screen_id(_si)=-1569558894460098554}]
10-09 18:22:50.043 2223-2254/it.peoople V/FA: Using measurement service
10-09 18:22:50.043 2223-2254/it.peoople V/FA: Connection attempt already in progress
10-09 18:22:50.050 2223-2254/it.peoople D/FA: Connected to remote service
10-09 18:22:50.050 2223-2254/it.peoople V/FA: Processing queued up service tasks: 2
10-09 18:22:50.082 2223-2254/it.peoople V/FA: Activity resumed, time: 57774811
10-09 18:22:50.082 2223-2518/it.peoople D/AppTracker: App Event: start
を否定し、アンドロイドlogcat印刷された私を助けてください。
本当にありがとうございます。
対象となるSDKのバージョンは何ですか? – nomag
ターゲットSDK 25、minSDK 21 –
およびテストデバイスのビルドバージョン?その私のためにうまく動作します – nomag