2017-02-22 7 views
-1

Androidストレージにファイルを書き込む際に問題が発生しました。 /ストレージ//0 /アンドロイド/ fileSD(パーミッション拒否)アンドロイドのファイルにパスワードを保存するには?

はい、私は追加している用途をエミュレート:私は多くの例を使用し、最も厄介な問題が

java.io.FileNotFoundExceptionがあります-permission私のマニフェスト

にこれが私の活動です:

public class MainActivity extends Activity { 
    // init variables 
    EditText pass; 
    Button login; 
    String password; 
// final String DIR_SD = "/Android"; 
// final String FILENAME_SD = "fileSD"; 
// final String LOG_TAG = "myLogs"; 

//init onCreate method that provide our logic when activity start open 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

//  if(mFileName.()){ 
// 
//  } 

    pass = (EditText) findViewById(R.id.pass); 
    login = (Button) findViewById(R.id.button); 



    login.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      password = pass.getText().toString().trim(); 

       if (TextUtils.isEmpty(password)) { 

        pass.setError("password mustnot be empty"); 
        pass.focusSearch(View.FOCUS_DOWN); 

       } else if (password.length() >= 6 && password.length() <= 24) { 

        Toast.makeText(getApplicationContext(), "validation sucess", Toast.LENGTH_LONG).show(); 

        Intent intent = new Intent(MainActivity.this, new_activity.class); 
        startActivity(intent); 


       } else { 
        pass.setError("password length must be match:5=<password>=10"); 
        pass.focusSearch(View.FOCUS_DOWN); 
       } 


      } 
    }); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

初めてのユーザオープンアプリならば、彼はパスワードを入力し、それをファイルに書き込む必要があります。ファイルが存在する場合は、それを読み取って、ユーザーが入力するパスと比較して、新しいアクティビティを開始する場合はそれを、そうでない場合はパスが間違っているというメッセージを表示する必要があります。

、私は数日のためにそれを行う試してみて、私は何をすべき

+0

あなたのファイルコードはどこですか? –

+0

上記のコードでファイルを読み取ろうとしていません –

+1

1)Android API 23+では実行時のアクセス許可を要求する必要があります。2)SharedPrefencesを使用しないでください。 –

答えて

0

を読むことができるがSharedPreferencesを使用してみてください、あなたはこの

SharedPreferences sharedPreferences = getSharedPreferences("PrefName", MODE_PRIVATE); 
sharedPreferences.edit().putString("password", "Your Password").apply(); 

のようにパスワードを保存することができ、あなたがそれを必要とするとき、あなたは簡単に

を取得することができます
sharedPreferences.getString("password", "") 
0

を行うには、それはあなたのマニフェストに許可を使用して書くのに十分ではないIDKの、あなたは、ランタイム、 プラスそのAでそれを処理する必要があります助けてくださいファイルに格納し、ユーザーのパスワードに悪い考え、誰もがそれを

+0

私はパスワード –

+0

をハッシュし、次にこのURLを確認しますhttps://developer.android.com/training/permissions/requesting.html実行時にパーミッションを要求する –

関連する問題