2017-02-16 18 views
-5

私はこのコードを使用してSendSMS(string 1, string 2); というメソッドを実行する前にSMS許可を要求していますが、許可要求が行われる前にアプリがクラッシュします。 何が欠けていますか?アクセス許可を要求するとアプリケーションがクラッシュする

final private int REQUEST_CODE = 101; 

private void SendCreditSMS() { 
    if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS) 
      != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(MainActivity.this, 
       new String[]{Manifest.permission.SEND_SMS}, REQUEST_CODE); 
    } else { 
     SendSMS("181", "رصيد"); 
    } 
} 
+0

エラーが発生したときにlogcatを入力してください –

+0

エラーログメッセージの共有ログcat – Piyush

+0

エラーログはどこですか? – Piyush

答えて

0

問題はあなたがいない歴史を持つと権限(複数可)を要求する活動を宣言した理由が原因である可能性があり

final private int REQUEST_CODE = 101; 


    private void SendCreditSMS() { 
     if (Build.VERSION.SDK_INT >= 23) { 
      if (ActivityCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS) 
        != PackageManager.PERMISSION_GRANTED) 
      { 
       ActivityCompat.requestPermissions(MainActivity.this, 
         new String[]{android.Manifest.permission.SEND_SMS}, REQUEST_CODE); 
      } else 
      { 
       SendSMS("181", "رصيد"); 
      } 
     } 
     else{ 
      SendSMS("181", "رصيد"); 
     } 
    } 
+0

ここであなたが何を変更したのか分かりません。 –

+0

あなたはManifest.permission.SEND_SMSを使用しています。android.Manifest.permission.SEND_SMSを使用してみてください – user2025187

0

、これを試してみてください。この問題を解決するには、AndroidManifestファイルの関連アクティビティのコードブロックから android:noHistory="true"行を削除します。履歴なしのアクティビティを使用するには、finishAndRemoveTask()などの他のコールを使用できます。

0

あなたのアンドロイドデバイスのアプリケーションマネージャーに行って、現在実行しているアプリを選択してみてください。次に、デバイスでsend_smsサービスを使用する権限がデバイスによって与えられているかどうかを確認します。

関連する問題