6

私は自分のアプリでバイブレーター方式を使用したいのですが、素晴らしいバイブレーターを備えた携帯電話で動作させています。しかし、バイブレーターを備えていない電話はどうなりますか。まったく動かないのですか?アプリの動作を停止しますか?それとも市場にまったく出てこないのですか?または、バイブレーターが付いているかどうか電話に尋ねる必要がありますか?

このコードが適切かどうか、または調整が必要かどうかも知りたいですか?これが私のコードです。

Vibrator vi;

vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

vi.vibrate(100);

<uses-permission android:name="android.permission.VIBRATE" /> (In manifest)

おかげで、どんな助けも素晴らしいでしょう。

4

2 に答える 2

18

ドキュメントを確認してください。http://developer.android.com/reference/android/os/Vibrator.html

あなたがする必要があるのは、次のようにバイブレーターが電話に存在するかどうかを確認することだけです:

 Vibrator vi;

 vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

 if(vi.hasVibrator()){
     vi.vibrate(100);
 }

バイブレーションの許可により、Android マーケットはアプリをバイブレーション付きの電話だけにフィルタリングする場合があります。これを回避するには、required="false" の属性を持つタグを使用できます。

 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-feature android:name="there.isnt.a.vibrate.feature" android:required="false" />

それはすべてここに文書化されています:

http://developer.android.com/guide/topics/manifest/uses-permission-element.html

http://developer.android.com/guide/topics/manifest/uses-feature-element.html

でも

バイブ機能文字列がないため、バイブレーション権限を使用しているため、Android マーケットはアプリをフィルタリングしません。したがって、uses-permission を使用して、Java コードでチェックを行っても問題ありません。

Android マーケットと互換性があるデバイスにはバイブレーターが必要ですが、もちろんこれは amazon やその他のアプリ マーケットには当てはまりません (Barnes & Noble Nook にはバイブがありません)。

これは、Dianne Hackthorn (Google の Android リード開発者) が次のスレッドに返信したことによって裏付けられています

于 2012-01-14T16:10:41.743 に答える
3

does it not work at all? does it stop the app working?

Your vibration request should simply be ignored.

or does it not show up in the market at all?

You cannot filter out devices from the Market that lack a vibration motor. Hence, the VIBRATE permission is not one of those where if you ask for it imply a hardware feature.

or do i have to ask the phone if it has a vibrator?

You can, on API Level 11 and higher -- see Blundell's answer.

于 2012-01-14T16:17:33.990 に答える