クラスからのフラグメントにあるメソッドを呼び出そうとしています。今私はエラーを取得しています:非静的メソッドcheckWriteStoragePermission()は、静的コンテンツから参照することはできません。私は本当にアイデアがありません。私は約2日間は何の結果も得られていない。静的メソッドではない静的メソッドcheckWriteStoragePermission()を参照することはできません
私はメソッドを呼び出ししようとしていますクラス:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public static String sRecordDate;
public void onMessageReceived(RemoteMessage remoteMessage) {
Intent intent = new Intent(this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle("FCM NOTIFICATION");
notificationBuilder.setContentText(remoteMessage.getNotification().getBody());
notificationBuilder.setAutoCancel(true);
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher);
notificationBuilder.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,notificationBuilder.build());
for (Map.Entry<String, String> entry : remoteMessage.getData().entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
Log.d(":", "key, " + key + " value " + value);
sRecordDate = value;
RecordingMode.checkWriteStoragePermission(); //HERE I AM GETIING THE ERROR
}
}
断片クラスのメソッド:
public void checkWriteStoragePermission() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(ContextCompat.checkSelfPermission(getActivity(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
mIsRecording = true;
try {
createVideoFileName();
} catch (IOException e) {
e.printStackTrace();
}
startRecord();
mMediaRecorder.start();
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.setVisibility(View.VISIBLE);
mChronometer.start();
} else {
if(shouldShowRequestPermissionRationale(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Toast.makeText(getActivity(), "app needs to be able to save videos", Toast.LENGTH_SHORT).show();
}
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_EXTERNAL_STORAGE_PERMISSION_RESULT);
}
} else {
mIsRecording = true;
try {
createVideoFileName();
} catch (IOException e) {
e.printStackTrace();
}
startRecord();
mMediaRecorder.start();
mChronometer.setBase(SystemClock.elapsedRealtime());
mChronometer.setVisibility(View.VISIBLE);
mChronometer.start();
}
}
私はこれを簡単に解決することができますか?私はこれを静的メソッドに変換することはできません。
敬具、
あなたはこの行書かれている「RecordingMode.checkWriteStoragePermissionを();」記録モードのクラス名またはオブジェクト名ですか? – Sakalya
RecordingMode.classはMy Fragment、MyFiebaseMessagingService.classは外部クラスです。 –