2017-12-20 20 views
0

ボーダフォンや他のAndroidデバイスで実行されたものとは違って、Samsungのデバイスでコードが異なるように実行される理由はありますか?アンドロイドの異なるコードで同じコードが動作していますか?

  • 同じAPK
  • 同じバージョンが
  • すべてのアプリの権限は同じ

差はサムスンが振動し、次のされていないということです、次のとおりです。

私がいることを確認しています私が設定したパターンが、ボーダフォンの電話は完全にそれを実行している。ここで

は、振動コードです:

if (!this.isRunning && startId == 1) { 
     Log.e("if there was not sound", " and you want to start"); 
     //incorporate vibrating 
     Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
     long[] pattern = {0, 15000, 0, 15000}; 
     v.vibrate(pattern, -1); 

私は単純に携帯電話はどの休憩なしで30秒間振動したいが、サムスンの携帯電話は完全にからの文字の外にあるの再開後、5秒間停止していますコード私はどのアイデアを使っていますか?

+0

@Michaelドッドに任意のアイデアを、この機能を追加しますか? – Rajeey3

答えて

0

あなたのMainActivityでは、setcontentView();の後にOncreateメソッドでこのコードを追加します。

int PERMISSION_ALL = 1; 

    String[] PERMISSIONS = {Manifest.permission.VIBRATE}; 

     if(!hasPermissions(this, PERMISSIONS)){ 
      ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL); 
     } 

その後、編集するのではなく...あなたのクラス

public static boolean hasPermissions(Context context, String... permissions) { 

    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {  

     for (String permission : permissions) { 
      if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { 
       return false; 
      } 
     } 
    } 
    return true; 
} 
+0

これを試してみましたが、VodafoneやSamsungのデバイスではうまくいきません。30000ミリ秒を指定したときに最大15秒かかるようです@Waqar Abbas – Rajeey3

+0

@Tom Aranda ..アイデア? – Rajeey3

+0

あなたはandroid.xml

関連する問題